如何在iOS应用程序中每1秒获取一次后台位置更新?

时间:2014-09-08 08:30:09

标签: objective-c gps xcode5 cllocationmanager ios7.1

我正在寻找一种永久更新后台位置的方法。我使用的是iOS 7.1。

当前场景:它在后台运行良好,但不是永远。每隔22到30分钟,GPS位置更新将暂停。

注意:只要我们正在移动,我们就会永远获得GPS更新但是当我们停止超过一个小时后,位置更新会被OS自动暂停...当我们开始移动操作系统时,不再恢复/检测位置自动更新......

所以第一个问题是:

如何从第22或第30分钟重新调用位置服务,以便它可以连续不断地运行?

我们在下面的属性集中设置了应用程序plist文件:

所需的背景模式:

  • 应用程序注册位置更新
  • App提供IP语音服务
  • App使用AirPlay播放音频或流音频/视频

我们也做到了这一点:

UIApplication *app = [UIApplication sharedApplication];

    _bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:_bgTask];
        _bgTask = UIBackgroundTaskInvalid;
    }];

其中_bgTask是UIBackgroundTaskIdentifier。

其次,我们还希望每1秒捕获一次GPS位置更新。为此,我们编写了一个单独的计时器来捕获该位置更新。请注意,一旦GPS位置更新被操作系统暂停,它也会暂停我们的计时器。

所以第二个问题是:如何在后台永远运行计时器?

0 个答案:

没有答案