18

我的应用程序中至少有两个控制器当前使用它们自己的 CLLocationManager 实例。但是,我很好奇,如果使用多个实例实际上会给手机带来任何额外的负担——除了不同实例的额外内存。

iPhone 会多次 ping GPS 硬件,还是使用某种分派方式将硬件抽象化并转发给所有听众?我正要编写自己的抽象层来处理多个观察者,但想检查是否有任何知识表明没有必要。

4

1 回答 1

14

我会说不,这不会是问题或性能损失。在一个应用程序中拥有多个 CLLocationManager 实例并不比在后台拥有多个应用程序都使用 CLLocationManager 更昂贵。操作系统根据所有 CLLocationManager 的组合请求配置 GPS/小区无线电以实现最低功耗。

当您的应用不再需要它时,请务必停止所有 CLLocationManager 实例上的位置更新(即:在 applicationWillResignActive 中:),以便可以关闭 GPS 硬件以节省电池。

于 2010-09-01T02:02:17.617 回答