5

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

我的问题是,“关闭定位服务”最省电的方法是什么?仅使用“stopUpdatingLocation”方法并将 CLLocationManager 自己保留在内存中是否足够,或者我是否需要释放整个实例,并在下次刷新之前分配一个新实例?

4

3 回答 3

6

我同意与andstopUpdatingLocation相结合的其他答案是要走的路。请注意,当所需的精度在公里范围内时,位置管理器甚至可能不必启动 GPS。distanceFilterdesiredAccuracy

同样,根据您的用途,查看区域监控和重要的位置更新,因为它们对电池更友好。

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

于 2012-05-06T11:25:55.337 回答
2

是的。打电话stopUpdatingLocation就够了。

更好的方法是为distanceFilter和设置好的值desiredAccuracy。10 秒不足以预热 GPS。

CLLocationManager

于 2012-05-06T11:07:41.967 回答
1

设置得当distanceFilterdesiredAccuracy可能是对电池寿命影响最大的两个因素。

然而

要真正知道什么是最省电的,您应该使用 Instruments 并测量设备上的电池消耗。为此有一个内置工具。

于 2012-05-06T11:09:14.507 回答