如果startUpdatingLocation
正在运行时拨打startMonitoringSignificantLocationChanges
会怎样? significantLocationChange监控是否会停止?如果我然后stopUpdatingLocation
将显着位置监控继续或重启?
我找不到涵盖这两种监控位置方式之间相互作用的文档。
答案 0 :(得分:21)
我不认为接受的答案真的回答了问题。我做了一些测试,如果你愿意,你可以使用它们,它们不会互相取消。
为什么有人想要同时使用这两种?因为startMonitoringSignificantLocationChanges
唤醒应用程序被暂停或终止而不需要任何后台模式。因此,如果您同时运行两者,则可以获得准确的前景位置更新和重要的位置更改背景位置更
当然,你可以在进入后台时切换方法,但a)不是问题b)它添加了不需要的逻辑
当然,如果运行这两种方法会消耗更多电量,那就有一个问题,但我敢打赌它并没有。
答案 1 :(得分:5)
它们并不意味着同时使用。它可以是或者同时为同一委托方法提供标题和位置更改。
的LocationManager:didUpdateToLocation:fromLocation
它们的变化频率和精度(以及扩展的硬件和功耗)不同。您作为开发人员需要根据您的用例决定哪个最好
我需要在不同的时间使用这两种方法。当我从一个切换到另一个时,我设置了一个我可以在我的委托中引用的标志,以便我知道更新的类型。
答案 2 :(得分:3)
标准位置服务和重要的位置变更服务可以一起使用。引自the API Reference:
如果两个位置服务同时启用,则会传递 使用同一组委托方法的事件。
使用两者的一个很好的理由是标准服务提供更高的准确性,而重要的位置更改服务即使您的应用程序被暂停也能正常工作。