使用多个CLLocationManager实例是否存在任何性能损失

Pau*_*der 14 iphone core-location cllocationmanager

我的应用程序中至少有两个控制器当前使用自己的CLLocationManager实例.我很好奇但是如果使用多个实例实际上会给手机增加额外的负担 - 超出了不同实例的额外内存.

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

pro*_*rmr 11

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

当您的应用不再需要时,请务必停止所有CLLocationManager实例的位置更新(例如:在applicationWillResignActive :),以便可以关闭GPS h/w以节省电池电量.

  • "操作系统根据所有CLLocationManagers的组合请求配置GPS /小区无线电以实现最低功耗." 它在哪里写在文档上? (2认同)
  • "当你的应用程序不再需要它时,请务必停止所有CLLocationManager实例的位置更新(例如:在applicationWillResignActive :)中,这样可以关闭GPS以节省电池电量." 如果您将应用配置为在后台接收更新(仅限iOS4),GPS将仅继续激活,否则如果没有其他应用询问位置,GPS将关闭.好的做法是在您不需要GPS信息时立即停止位置管理器,而不仅仅是在applicationWillResignActive:.将"ie"更改为"eg",您将修复它. (2认同)
  • @Paul:我在itunes商店中有一个基于位置的应用程序,并在发布之前进行了大量的测试和测量. (2认同)