UIBackgroundTask抛出错误`没有后台任务存在'

时间:2017-09-11 00:23:14

标签: ios swift uibackgroundtask

当应用转换为后台时,AVAudioPlayer在后​​台任务中停止:

func stop() {

    var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid
    backgroundTask = UIApplication.shared.beginBackgroundTask() {

        UIApplication.shared.endBackgroundTask(backgroundTask)
        backgroundTask = UIBackgroundTaskInvalid
    }

    DispatchQueue.global(qos: .default).async {

        self.audioPlayer?.pause()

        UIApplication.shared.endBackgroundTask(backgroundTask)
        backgroundTask = UIBackgroundTaskInvalid // Symbolic breakpoint stops here
    }
}

当发布AVAudioPlayer通知时,上面的函数会被包含UIApplicationDidEnterBackground的视图控制器调用。

我仍然在第backgroundTask = UIBackgroundTaskInvalid行收到错误:

// Can't endBackgroundTask: no background task exists with identifier 1f, or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.`

当我删除该行时,我没有错误。我在SO上查看了类似的问题,但他们没有帮助。

导致此错误的原因是什么?

0 个答案:

没有答案