17

如果我startUpdatingLocationstartMonitoringSignificantLocationChanges运行时调用会发生什么?是否会停止显着位置更改监视?如果我那么stopUpdatingLocation显着的LocationChange监控会继续还是重启?

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

4

3 回答 3

26

我认为接受的答案并不能真正回答所提出的问题。我做了一些测试,如果你愿意,你可以同时使用它们,它们不会相互抵消。

为什么有人要同时使用两者?因为startMonitoringSignificantLocationChanges无需任何后台模式即可将应用程序从暂停或终止中唤醒。因此,如果您同时运行两者,您可以获得准确的前台位置更新和显着的位置更改后台位置更新。

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

当然,如果同时运行这两种方法会消耗更多电池,这是一个问题,但我敢打赌它不会。

于 2015-09-24T19:57:31.110 回答
5

它们不能同时使用。它是或者因为它们都将标题和位置更改传递给相同的委托方法。

locationManager:didUpdateToLocation:fromLocation

它们在更改的频率和准确性(以及使用的扩展硬件和功耗)方面有所不同。作为开发人员,您需要根据您的用例决定哪个是最好的

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

于 2012-06-26T16:36:39.653 回答
3

标准位置服务和重大位置变更服务可以一起使用。引用API 参考

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

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

于 2017-01-03T06:54:35.190 回答