我有一个关于使用locationManager时节省电池的问题。我在这看:
https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html
和这里:
http://tumblr.twicetwice.net/post/47249353501/cllocationmanager-battery-saving-tips-and-best
在许多stackoverflow帖子中,但我不能使用大多数这些提示,例如startMonitoringSignificantLocationChanges()
,因为我需要经常进行高精度更新,也需要在后台进行。此外,我知道我不能在后台使用计时器来获取位置,例如每10秒钟。现在,如果我不移动特定时间,我想停止获取位置更新。当我再次移动时,我想再次获得更新。我无法使用
pausesLocationUpdatesAutomatically = true
,因为我不希望用户将应用程序放回到前台以更新位置。当应用程序在后台时,还有其他方法可以延长电池续航时间吗?我还搜索了CoreMotion的例子,因为如果我没有移动一段特定的时间我就有了关闭GPS的想法,如果加速计检测到几步,我就打开它。但是我发现这也不适用于后台,或者有没有人知道如何使这个工作?当应用程序处于backgound中时,当我移动并开始更新位置时,是否有更好的解决方案可以停止更新位置?我会感谢任何有关我能做什么的建议。
答案 0 :(得分:0)
现在,如果我不移动特定时间,我想停止获取位置更新。当我再次搬家时,我想再次获得更新
您可能正在描述访问监控。 - 但总的来说,连续要求高精度位置非常耗电;这就是为什么你不应该这样做,除非设备被连接到电源。