0

调用 startUpdatingLocation 和 startMonitoringSignificantChanges 与其中一个或另一个是否可取或有任何问题?我了解重大更改调用 re: 电池寿命的好处,但是在使用它时发现它与触发 didUpdateToLocation 不一致,有时即使我知道我已经设置了我知道它应该在什么时候触发的位置,但有时根本不会触发我在那个位置,但没有。我能够验证我的应用程序与另一个行为非常相似的应用程序的结果,包括我的应用程序和在后台运行的其他应用程序(UIBackgroundModes 在 plist 中确实具有“应用程序注册位置更新”设置)。如果我尝试仅使用重大更改,则结果并不一致。如果我同时使用,如果/何时终止应用程序,我会得到准确的结果 + 获得通知的额外好处(需要)。我不想通过使用 startUpdatingLocation 来杀死电池寿命,并尝试调用 stopUpdatingLocation,然后在 applicationDidEnterBackground 中调用 startMonitoringSignificantChanges,以帮助在后台节省电池寿命,但似乎无法理解为什么要依赖重大变化无法始终如一地发挥作用。

4

1 回答 1

0

Apple 建议您-startUpdatingLocation在应用程序处于前台和-startMonitoringSignificantChanges后台时使用。在应用程序处于前台时同时使用这两种方法可能只是一种浪费,而且处理事件的工作量可能比仅仅监控更多-didUpdateToLocation。在后台运行时,您可以关闭 GPS 模式并切换到功率更低的模式。您必须假设一旦您被后台处理或关闭,用户就不会那么关心准确性。

于 2013-09-14T14:00:18.873 回答