我正在与 CLLocation 经理合作,
我已经实现startUpdatingLocation
了获取当前位置纬度和经度的方法。
如果应用程序运行前台,我得到当前位置的纬度和经度,但是当应用程序在后台运行时它不起作用。
如果应用程序在后台运行,请建议我如何获得当前位置的纬度和经度。
我正在与 CLLocation 经理合作,
我已经实现startUpdatingLocation
了获取当前位置纬度和经度的方法。
如果应用程序运行前台,我得到当前位置的纬度和经度,但是当应用程序在后台运行时它不起作用。
如果应用程序在后台运行,请建议我如何获得当前位置的纬度和经度。
我刚刚从这个链接在stackoverflow中找到了答案:-
如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?
在 Apple Developer Forums 的帮助下找到了实现此功能的解决方案。我做了以下事情:
NSTimer
在后台使用UIApplication:beginBackgroundTaskWithExpirationHandler:
n
比UIApplication:backgroundTimeRemaining
它工作得好,万一n
更大,位置管理器应该在没有剩余时间之前再次启用(和禁用)以避免后台任务被杀死。这确实有效,因为 location 是三种允许的后台执行类型之一。注意:通过在模拟器中测试它而放松了一些时间,它不起作用,在我的手机上工作正常。
在后台获取当前位置 在 plist 中指定位置后台模式。