我正在寻找一种永久更新后台位置的方法。我使用的是iOS 7.1。
当前场景:它在后台运行良好,但不是永远。每隔22到30分钟,GPS位置更新将暂停。
注意:只要我们正在移动,我们就会永远获得GPS更新但是当我们停止超过一个小时后,位置更新会被OS自动暂停...当我们开始移动操作系统时,不再恢复/检测位置自动更新......
所以第一个问题是:
如何从第22或第30分钟重新调用位置服务,以便它可以连续不断地运行?
我们在下面的属性集中设置了应用程序plist文件:
所需的背景模式:
我们也做到了这一点:
UIApplication *app = [UIApplication sharedApplication];
_bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:_bgTask];
_bgTask = UIBackgroundTaskInvalid;
}];
其中_bgTask是UIBackgroundTaskIdentifier。
其次,我们还希望每1秒捕获一次GPS位置更新。为此,我们编写了一个单独的计时器来捕获该位置更新。请注意,一旦GPS位置更新被操作系统暂停,它也会暂停我们的计时器。
所以第二个问题是:如何在后台永远运行计时器?