【发布时间】:2017-03-15 00:40:03
【问题描述】:
我有一个关于在使用 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,如果加速度计检测到几步,则将其打开。但我发现这在后台也不起作用,或者有人知道如何让它工作吗?是否有更好的解决方案可以在我不移动时停止更新位置并在应用程序处于后台时在我移动时开始更新位置?如果我能提供任何建议,我将不胜感激。
顺便说一句:我是 Swift 的新手,所以也许有一些我不知道也找不到的非常简单的解决方案。
【问题讨论】:
标签: ios swift core-location cllocationmanager core-motion