我的新“正在使用的应用程序”使用CLLocationManager的实例用于多种目的。为了使应用程序尽可能对电池友好,应仅在需要时激活位置服务,并在数据刷新完成后立即停用。出于我的目的,仅在10秒内获取一次位置数据就足够了。 (尚未确定确切的间隔长度)。
我的问题是,“关闭位置服务”的电池效率最高的方法是什么?仅使用“stopUpdatingLocation”方法并将CLLocationManager本身保留在内存中是否足够,或者我是否需要释放整个实例,并在下次刷新之前分配一个新实例?
答案 0 :(得分:6)
我同意stopUpdatingLocation
与distanceFilter
和desiredAccuracy
相结合的其他答案。请注意,当所需精度在千米范围内时,位置管理员甚至可能不需要启动GPS。
同样,根据您使用的内容,查看区域监控和重要位置更新,因为它们更适合电池使用。
相关:Location Awareness Programming Guide - Tips for Conserving Battery Power
答案 1 :(得分:2)
是。拨打stopUpdatingLocation
即可。
更好的方法是为distanceFilter
和desiredAccuracy
设置好的值。 10秒没有足够的时间来预热gps。
答案 2 :(得分:1)
设置适当的distanceFilter
和desiredAccuracy
可能是影响您电池续航时间的两个因素。
要真正了解什么是最适合电池使用的,您应该使用仪器并测量设备上的电池消耗。有一个内置的工具。