关于ios:监控重大位置变化、App关闭GPS信号(箭头)

Monitoring Significant Location Changes, App closed GPS signal (Arrow)

首先我希望不要重复任何话题,我在问之前花了很多时间在互联网上阅读。

我正在为 iOS => 5 开发应用程序,我需要获取用户位置,但我并不总是需要非常准确的位置,因此当应用程序进入后台时,我将正常位置模式更改为重要位置更改,当应用程序进入前台时,我会停止重要的位置更改模式并恢复正常的位置模式,这一切都很好,

我的问题是当应用程序进入后台模式或什至用户 KILL 应用程序时 GPS 信号(紫色箭头)仍然出现,即使在重新启动设备后,唯一让它消失的方法是卸载或在应用程序进入后台时禁用重要的位置更改,但是当用户进入后台模式时我需要此模式工作,也许在应用程序被终止时不需要。

当用户杀死应用程序时,我不知道如何停止服务...因为如果您启用了多任务,则不会调用事件"applicationWillTerminate"。

我的主要原因是我不希望紫色箭头总是出现,即使应用程序被杀死也是因为我不希望用户认为应用程序正在耗尽电池......所以用户不会想要已安装应用程序。

第一个问题:如果应用开启了重大位置变更,紫色箭头一直出现,即使应用被杀,这正常吗?

第二个问题:有什么办法可以改变这一点,至少在应用程序被杀死以隐藏紫色箭头时停止服务?

谢谢大家。
如果有问题,对不起我的英语。


经过几天的研究以确定这项服务,似乎没有办法在没有顶部栏中的箭头的情况下使用背景中的重大位置变化。我一直在测试不同的应用程序并通过互联网阅读,但没有任何解决办法。

唯一的"解决方法"是在应用程序中禁用多任务模式,并在"applicationWillTerminate"事件中禁用重要的位置更改,但没有意义......我正在失去后台位置总是不仅在应用程序被杀死时......所以没有用。

这很糟糕...是一项非常好的服务,可以节省电池电量,但作为用户和开发人员,我不希望应用程序即使在应用程序被杀死后也总是出现这个图标,作为开发人员我不希望人们出于这个原因卸载该应用程序,作为普通用户,我不知道这个图标是什么意思,如果是正常的 GPS 或重要的位置发生变化,这意味着什么......如果我的电池正在耗尽或没有.

在后台任务中获取位置但对电池有很大影响的另一个选项....

我希望苹果在未来的版本中解决这个问题...至少添加一个新箭头或仅在新位置到达时显示而不是始终显示或在应用程序被终止时允许弯腰。

所有这些都在 iOS - 6.1 上进行了研究

谢谢大家。


当您使用重要的位置更改服务时,操作系统会保持您的应用程序运行。如果应用程序在后台并被杀死,操作系统会重新启动它,因此紫色箭头将始终显示。当检测到新位置时,应用程序将重新启动。来自文档:

If you leave this service running and your app is subsequently suspended or terminated, the service automatically wakes up your app when new location data arrives. At wake-up time, your app is put into the background and given a small amount of time to process the location data. ... To stop the significant change location service, call the stopMonitoringSignificantLocationChanges method.


嗯,有趣。我刚刚看到另一个应用程序的问题 - 看到箭头仍然活跃让我想禁用该应用程序的位置更新,所以问题是真实的。我能想到的最好的事情是有某种计时器在一定时间后禁用位置监控,如果这适合您的应用程序。