Iphone CLLocationmanager:节省电池

Iphone CLLocationmanager:节省电池,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,我的新“应用程序进行中”将CLLocationManager的实例用于多种用途。为了使应用程序尽可能对电池友好,应该仅在需要时激活位置服务,并在数据刷新完成后立即停用。就我而言,10秒内只获取一次位置数据就足够了。(尚未确定确切的间隔长度) 我的问题是,哪一种是“关闭定位服务”的最省电的方法?仅使用“StopUpdatengLocation”方法并将CLLocationManager本身保留在内存中就足够了吗?还是需要我释放整个实例,并在下次刷新之前分配一个新实例?是。调用stopUpdateL

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


我的问题是,哪一种是“关闭定位服务”的最省电的方法?仅使用“StopUpdatengLocation”方法并将CLLocationManager本身保留在内存中就足够了吗?还是需要我释放整个实例,并在下次刷新之前分配一个新实例?

是。调用
stopUpdateLocation
就足够了

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


设置适当的
距离过滤器
期望的准确性
可能是对电池寿命影响最大的两个因素

然而
要想真正了解什么是对电池最友好的,您应该使用仪器并测量设备上的电池耗电量。这是一个内置的工具。

我同意其他答案,即
停止更新位置
距离过滤器
所需的准确性
相结合是一条可行之路。请注意,当所需精度在公里范围内时,位置管理器甚至可能不必启动GPS

类似地,根据您使用它的目的,可以查看区域监控和重要的位置更新,因为它们对电池更友好


相关报道:

每十秒钟就有很多。除非是一个GPS应用程序,否则用户不会在很短的时间内长途跋涉。我考虑添加一个用户偏好,用户可以选择该定位是否应该以全功率模式运行,或者在“花功率模式”下运行。该应用程序的用途目前还不是100%清楚,我希望它会有任何用途。:)我只想补充一点,即使你要求10米甚至100米的准确度,如果用户在没有GPS接收和WiFi关闭的大建筑物内,你可能永远也得不到(例如,我发现很多人在工作时会关闭WiFi)。如果是这种情况,您也不会每10秒获得一次更新,因为只有当用户移动到另一个手机发射塔时,才会触发返回新位置的委托方法(如果他们在没有Wifi的情况下,则不会发生这种情况+GPS)