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
}