同时使用startUpdatingLocation和startMonitoringSignificantChanges?

时间:2013-09-12 17:04:52

标签: iphone ios cllocationmanager

调用startUpdatingLocation和startMonitoringSignificantChanges与其中一个是否明智或有任何问题?我理解重大变化的好处叫做电池寿命,但是当使用它时看到与它触发didUpdateToLocation不一致,有时根本不会触发,即使我知道我已经设置了我知道它应该触发时的位置我在这个位置但没有。我能够验证我的应用程序与另一个执行非常类似行为的应用程序的结果,包括我的和后台运行的其他应用程序(UIBackgroundModes确实在plist中有'应用程序寄存器用于位置更新'设置)。如果我尝试仅使用重大更改,则结果不一致。如果我同时使用两者,我会得到准确的结果+在应用程序终止时获得通知的额外好处(需要)。我想不要通过使用startUpdatingLocation来终止电池寿命,并且尝试调用stopUpdatingLocation然后调用applicationDidEnterBackground中的startMonitoringSignificantChanges以帮助在后台保存电池寿命,但似乎无法理解为什么依赖于重大变化不能持续发挥作用。

1 个答案:

答案 0 :(得分:0)

Apple建议您在应用程序位于前台时使用-startUpdatingLocation,并在后台使用-startMonitoringSignificantChanges。当应用程序处于前台时使用两者可能只是浪费,并且更有可能处理事件而不仅仅是监视-didUpdateToLocation。在后台运行时,您可以关闭GPS模式并切换到更低功耗的设备。您必须假设,一旦您背景或关闭,用户就不会那么关心准确性。