启动时的后台任务将在随机时间后暂停应用程序

时间:2017-05-14 09:41:43

标签: ios iphone swift core-bluetooth

我正在使用通过蓝牙连接到配件的应用程序,如果应用程序崩溃以在后台恢复连接,我已实施状态保存和恢复。

当iOS通过jetsamevent崩溃/关闭应用时,它会再次重新启动,并且在didFinishLaunchingWithOptions方法中,我已经实施了后台任务,以便让应用有更多时间重新启动连接到上一个外围设备,它将给应用程序〜3分钟扫描外围设备。

以下是我用于开始和结束后台任务的代码:

var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid

func registerBackgroundTask() {
    backgroundTask = UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler {
        [unowned self] in
        self.endBackgroundTask()
    }
}

func endBackgroundTask() {
    UIApplication.sharedApplication().endBackgroundTask(backgroundTask)
    backgroundTask = UIBackgroundTaskInvalid
}

我在发布时(registerBackgroundTask

呼叫didFinishLaunchingWithOptions

问题是,在某些时候,endBackgroundTask被调用,应用程序(似乎)移动到暂停状态并在随机时间后再次回到后台状态,有时3分钟,15分钟或3分钟小时。

注意: 我已使用Apple documentation来实施状态保存和恢复,第State Preservation and Restoration部分

0 个答案:

没有答案