startMonitoringSignificantLocationChanges和startUpdatingLocation如何相互影响?

时间:2012-06-26 09:54:38

标签: ios ios5 core-location cllocationmanager

如果startUpdatingLocation正在运行时拨打startMonitoringSignificantLocationChanges会怎样? significantLocationChange监控是否会停止?如果我然后stopUpdatingLocation将显着位置监控继续或重启?

我找不到涵盖这两种监控位置方式之间相互作用的文档。

3 个答案:

答案 0 :(得分:21)

我不认为接受的答案真的回答了问题。我做了一些测试,如果你愿意,你可以使用它们,它们不会互相取消。

为什么有人想要同时使用这两种?因为startMonitoringSignificantLocationChanges唤醒应用程序被暂停或终止而不需要任何后台模式。因此,如果您同时运行两者,则可以获得准确的前景位置更新和重要的位置更改背景位置更

当然,你可以在进入后台时切换方法,但a)不是问题b)它添加了不需要的逻辑

当然,如果运行这两种方法会消耗更多电量,那就有一个问题,但我敢打赌它并没有。

答案 1 :(得分:5)

它们并不意味着同时使用。它可以是或者同时为同一委托方法提供标题和位置更改。

的LocationManager:didUpdateToLocation:fromLocation

它们的变化频率和精度(以及扩展的硬件和功耗)不同。您作为开发人员需要根据您的用例决定哪个最好

我需要在不同的时间使用这两种方法。当我从一个切换到另一个时,我设置了一个我可以在我的委托中引用的标志,以便我知道更新的类型。

答案 2 :(得分:3)

标准位置服务和重要的位置变更服务可以一起使用。引自the API Reference

  

如果两个位置服务同时启用,则会传递   使用同一组委托方法的事件。

使用两者的一个很好的理由是标准服务提供更高的准确性,而重要的位置更改服务即使您的应用程序被暂停也能正常工作。