UIApplication.shared.beginBackgroundTask не работает на iOS 13 - PullRequest
4 голосов
/ 07 октября 2019

UIApplication.shared.beginBackgroundTask не работает на iOS 13. Есть ли альтернатива для реализации длительных фоновых задач на iOS 13? Кроме того, он отлично работает на iOS 12 и ниже.

Когда приложение выходит в фоновый режим, оно закрывается в течение 2 минут, тогда как я хочу, чтобы оно продолжалось в течение нескольких часов в фоновом режиме, поскольку мы выполняем некоторую обработку вbackground.

Ниже приведен код, который я использую, чтобы, когда мое приложение находилось в фоновом режиме, оно могло получать дополнительное время выполнения. Нам нужно это дополнительное время выполнения, потому что мы периодически отправляем текущее местоположение на сервер.

/// Register background task. This method requests additional background execution time for the app
private func registerBackgroundTask() {
    DispatchQueue.global().async {
        self.backgroundTask = UIApplication.shared.beginBackgroundTask(withName: "BgTask", expirationHandler: {
            // Ends long-running background task
            self.endBackgroundTask()
        })
    }
}

/// Ends long-running background task. Called when app comes to foreground from background
private func endBackgroundTask() {
    UIApplication.shared.endBackgroundTask(backgroundTask)
    backgroundTask = UIBackgroundTaskInvalid
}
...