fuz*_*oat 9 iphone cocoa-touch objective-c
CLLocationManager distanceFilter属性是否可以在所需距离之间执行任何操作以节省电池寿命/功耗.我不认为它,但我只是想检查我是否仍然应该调用stopUpdatingLocation而不是让它继续运行.
我在这里找到一个答案,建议电话拨打它的轮询(直到达到所需的距离),从而节省电力.但另一方面,它似乎暗示即使检查所需的距离也需要天线有效,因此节省了很少的电力.
目前,当我需要位置详细信息时,我明确地执行startUpdatingLocation,在将stopUpdatingLocation消息发送到CLLocationManager之前检查合适的位置.
没有直接记录(在distanceFilter财产上)以表明情况.stopUpdatingLocation如果您关心电池寿命并为用户提供体面的体验,那么您肯定应该打电话.根据我自己开发应用程序的经验,当使用更大的值时,我从未看到电池寿命有任何改善distanceFilter- 也许如果它确实做了什么,那么收益太小而无法注意到.
我认为,重点distanceFilter不在于节省电量,而是在您的应用不需要不断的位置数据流的情况下,允许您控制所获得的回调次数.
也就是说,我怀疑它确实涉及电源要求.当然,它的相关财产distanceAccuracy对电源管理有一定的影响 - 根据Apple文档:
将位置事件的所需精度设置为一公里,使位置管理员可以灵活地关闭GPS硬件并仅依靠WiFi或小区无线电.这可以显着节省电力.
所以我个人会怀疑这一点,distanceFilter并且distanceAccuracy都会以某种方式影响力量.问题(对我而言,我猜)是可测量的效果因设备而异,可能从操作系统版本到操作系统版本.因此,以任何有意义的方式量化都非常困难.
小智 6
一个苹果样本代码中的doc美专,设置更大的distanceFilter并没有在节电帮助:
http://developer.apple.com/library/ios/#samplecode/LocateMe/Listings/ReadMe_txt.html
...此外,distanceFilter不会影响硬件的活动 - 即,通过设置更大的distanceFilter不会节省功耗,因为硬件会继续获取测量值.这只会影响这些测量是否传递给位置管理器的代理.只能通过关闭位置管理器来保存电源.
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |