我的新“正在开发中的应用程序”将CLLocationManager的一个实例用于几个目的。为了让应用程序尽可能地对电池友好,定位服务应该只在需要时激活,并在数据刷新完成时立即停用。对于我来说,只需在10秒内获取一次位置数据就足够了。(尚未确定确切的间隔长度)。
我的问题是,哪种方法是最省电的“关闭定位服务”?仅仅使用"stopUpdatingLocation“方法并将CLLocationManager保存在内存中就足够了吗?还是需要我释放整个实例,并在下一次刷新之前分配一个新实例?
发布于 2012-05-06 19:25:55
我同意其他答案,即stopUpdatingLocation与distanceFilter和desiredAccuracy相结合是可行的。请注意,当期望的精度在千米范围内时,位置管理器甚至可能不必启动GPS。
同样,根据你使用它的用途,可以查看区域监控和重要的位置更新,因为这些更友好。
相关:Location Awareness Programming Guide - Tips for Conserving Battery Power
发布于 2012-05-06 19:07:42
是。调用stopUpdatingLocation就足够了。
更好的方法是为distanceFilter和desiredAccuracy设置好的值。10秒的时间不足以预热gps。
发布于 2012-05-06 19:09:15
设置适当的distanceFilter和desiredAccuracy可能是对电池寿命影响最大的两个因素。
然而,
要真正了解什么是最省电的,您应该使用Instruments并测量设备上的电池消耗。有一个内置的工具可以做到这一点。
https://stackoverflow.com/questions/10470036
复制相似问题