CLLocationmanager:节省电池

mch*_*mch 4 iphone cocoa-touch ios

我的新"正在进行的应用程序"使用CLLocationManager的实例用于多种目的.为了使应用程序尽可能对电池友好,应仅在需要时激活位置服务,并在数据刷新完成后立即停用.出于我的目的,仅在10秒内获取一次位置数据就足够了.(尚未确定确切的间隔长度).

我的问题是,"关闭位置服务"的电池效率最高的方法是什么?仅使用"stopUpdatingLocation"方法并将CLLocationManager本身保留在内存中是否足够,或者我是否需要释放整个实例,并在下次刷新之前分配一个新实例?

Adr*_*nig 6

我同意其他答案,stopUpdatingLocation结合distanceFilter而且desiredAccuracy是要走的路.请注意,当所需精度在千米范围内时,位置管理员甚至可能不需要启动GPS.

同样,根据您使用的内容,查看区域监控和重要位置更新,因为它们更适合电池使用.

相关:位置感知编程指南 - 节省电池电量的技巧

  • 我只想补充一点,即使你要求10米甚至100米的精度,如果用户在没有GPS接收和WiFi关闭的大型建筑物内,你可能永远不会得到它(我发现了很多例如,人们在工作时会关闭WiFi.如果是这种情况,您也不会每10秒获得一次更新,因为返回新位置的委托方法仅在用户移动到另一个单元塔时触发(如果它们在内部则不会出现这种情况)没有Wifi + GPS) (2认同)