在使用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和许多堆栈溢出帖子,但是我不能使用大多数像startMonitoringSignificantLocationChanges()这样的技巧,因为我经常需要高精度的更新,也是在后台。此外,我知道我不能在后台使用计时器来获取位置,例如每10秒。现在,我想停止获得位置更新,如果我没有移动一个特定的时间。当我再次搬家的时候,我想再一次得到更新。我不能使用pausesLocationUpdatesAutomatically = true,因为我不希望用户将应用程序放回前台以更新位置。当应用程序处于后台时,还有其他方法来延长电池寿命吗?我还搜索了CoreMotion的例子,因为我有一个想法,如果我没有移动一个特定的时间,关闭全球定位系统,并打开它,如果加速度计检测到几步。但是我发现这在背景中也不起作用,或者有人知道如何让它起作用?有没有更好的解决方案,停止更新位置时,我不移动,并开始更新位置,当我移动时,我的应用程序在后台?我很感激我能做的任何建议。
顺便说一句:我是Swift的新手,所以也许有非常简单的解决方案,我不知道,也找不到。
发布于 2017-03-15 00:42:45
现在,我想停止获得位置更新,如果我没有移动一个特定的时间。当我再次移动时,我想再次得到更新
你可能是在描述访问监控。-但一般来说,连续要求高精度的定位是非常昂贵的;这就是为什么你不应该这样做,除非设备是连接到电源。
https://stackoverflow.com/questions/42799177
复制相似问题