我现在正在对此进行试验,以下是我的观察结果:
在 iPhone 4上,这根本不起作用。即使您将 pausesLocationUpdatesAutomatically 设置为 YES,它也会将 pausesLocationUpdatesAutomatically 设置为 NO(0)。没有警告,这是什么 API 设计反模式!
iPhone 5 pausesLocationUpdatesAutomatically 默认为 YES (1)。并调用 locationManagerDidPauseLocationUpdates。我在调用 locationManagerDidResumeLocationUpdates 时运气不好。我也很困惑,如果 GPS 关闭,这将如何调用?一旦用户到达下一个网络单元,它会被调用吗?即使那不是我的经验,也从来没有被称为。
到目前为止,在我看来,这是 iOS6 中一致性最差的变化之一。对于所有场景,我可能只使用 pausesLocationUpdatesAutomatically = NO,并希望在 iOS6 的所有型号上都能正常工作。
[更新 - 2013 年 3 月 4 日]。我查看了 Apple 关于 iOS6 中位置更改的演示文稿,他们建议在收到区域更改事件后使用区域更改监控来“取消暂停”。虽然这不适合我的场景,因为用户可能会去/跑步/开车一两公里,直到发生这样的事件。