我喜欢使用标准位置服务扩展我的应用程序,即使应用程序未运行或在后台运行,也可以在发生位置更改时通知应用。
Apple建议使用重要的更改位置服务,这样可以节省电池电量,准确性对我来说没问题。
但是,是否可以在一个项目中同时使用标准和重要的变更位置服务?
答案 0 :(得分:0)
在Apple Developer论坛的帮助下找到了实现此解决方案的解决方案。我做了以下事情:
指定位置背景模式
使用
在后台使用NSTimer
的UIApplication:beginBackgroundTaskWithExpirationHandler:强>
如果n小于 UIApplication:backgroundTimeRemaining ,它确实可以正常工作,如果n较大,应该在没有剩余时间之前再次启用(和禁用)位置管理器以避免背景任务被杀死。
这确实有效,因为location是三种允许的后台执行类型之一。
注意:不要通过在模拟器中测试此功能来解决这个问题,因为它在我的手机上无法正常工作。