根据应用程序状态在重要位置更改监视和位置更新监视之间切换

时间:2017-04-18 10:15:42

标签: ios core-location cllocationmanager

我们使用重要位置变化监控来了解应用未运行时用户的行踪。该数据基于蜂窝塔信号,因此不是非常准确。我们希望在可能的情况下,即应用程序处于活动状态或在后台运行时使用更准确的数据。

问题是,我应该同时使用“startMonitoringSignificantLocationChanges”和“startUpdatingLocation”,还是应该在这两种方法之间切换?如果第二个选项更好,我应该使用哪些app delegate事件来执行必要的切换?

1 个答案:

答案 0 :(得分:3)

除非您想要支持需要连续高精度位置流的功能,否则最好避免始终通过startUpdatingLocation使用高精度GPS数据。

我从您的问题中了解到,当您的应用被唤醒时,您打算仅在特定兴趣点使用更准确的位置。在这种情况下,仅在需要时接通更准确的位置数据的第二种方法是更好的主意。

在你的locationManager(_:didUpdateLocations:)代表中,{p> CLLocationManager将是一个很好的开始,在你的情况下。请记住,重要的位置更改监控API至少每15分钟唤醒一次系统,即使没有位置更改,也要明确停止。所以必须小心使用它。

确保准确的位置跟踪,同时确保您不会吃掉所有手机电池,这是一个非常重要的问题。您可能希望提供第三方SDK,例如Hypertrack,专门研究这个,尝试。