我想获得用户的不同位置,以便向他显示他的旅行。但是为了节省用户的电量,我想每隔10秒钟与我的CLLocation
经理一起获取他的位置。
我首先想到的是不执行10秒间隔并在用户每次使用didUpdateLocations
的{{1}}移动时获取用户的位置,但是当我模拟驱动器时,我每秒都会获取新的位置,我认为这对电池真的不好,对吗?
答案 0 :(得分:3)
不要再猜测位置管理器。您的工作是适当地设置其属性,例如distanceFilter
,desiredAccuracy
和activityType
。 Apple将使用本书中的所有技巧,以确保根据您的设置合理使用电池。正如文档所述:
核心位置通过在不需要时关闭硬件来积极管理电源。例如,将位置事件的期望精度设置为一公里,可以使位置管理器灵活地关闭GPS硬件,而仅依靠WiFi或蜂窝无线电,这可以节省大量电量。
如果目标是在后台跟踪位置,则有一些特殊的模式可以节省更多空间。
答案 1 :(得分:0)
每隔10秒频繁检查一次位置,这会很快耗尽用户的电池。
如果要节省电池,则应该学习有关位置管理器的苹果指南。
您需要使用distanceFilter
和desiredAccuracy
Energy Efficiency Guide for iOS Apps
Location Awareness Programming Guide - Tips for Conserving Battery Power
更新
您还可以检查移动CLLocation的用户移动speed的速度并调整activityType