startMonitoringSignificantLocationChanges和startUpdatingLocation如何相互影响?

Und*_*ion 16 core-location cllocationmanager ios ios5

如果我startUpdatingLocationstartMonitoringSignificantLocationChanges跑步的时候打电话怎么办?significantLocationChange监控是否会停止?如果我然后stopUpdatingLocation将significantLocationChange监控继续或重启?

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

mic*_*rus 22

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

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

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

当然,如果运行两种方法都会消耗更多电池,那就有一个问题,但我敢打赌它不会.


小智 5

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

的LocationManager:didUpdateToLocation:fromLocation

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

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

  • 在最新的文档中,Apple确实提到它们可以同时运行,但没有提供任何有关交互的细节."如果两个位置服务同时启用,它们使用同一组委托方法传递事件." https://developer.apple.com/reference/corelocation/cllocationmanager (2认同)

Mak*_*kyi 5

标准位置服务和显着位置改变服务可以一起使用。引用API 参考

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

使用这两种服务的一个很好的理由是,标准服务可以提供更好的准确性,而重要的位置更改服务即使在您的应用程序暂停时也可以工作。