Как продлить 'backgroundTimeRemaining' больше времени? - PullRequest
1 голос
/ 18 января 2020

Я хочу продлить backgroundTimeRemaining более чем на 30 секунд и в соответствии с Apple

"Значение действительно только после того, как приложение войдет в фон и запустит хотя бы одну задачу, используя beginBackgroundTask (expirationHandler :) на переднем плане.

Системные условия могут прервать фоновое выполнение раньше, либо вызвав обработчик истечения срока действия, либо завершив работу приложения. "

, поэтому я пытаюсь добавлять и редактировать, но это не может работать

вот что я попробовал

//MARK:- BeginBackgroundTask
func registerBackgroundTask() {
  backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
    self?.endBackgroundTask()
    print(self!.beginTime)
  }

//TODO: Add new background time ex: 60 sec
var backgroundTimeRemaining: TimeInterval {
        get{
            return 60
        }
    }

assert(backgroundTask != .invalid)
} 

//MARK:- EndBackgroundTask
func endBackgroundTask() {
  print("Background task ended.")
  UIApplication.shared.endBackgroundTask(backgroundTask)
  backgroundTask = .invalid
}

1 Ответ

0 голосов
/ 18 января 2020

backgroundTimeRemaining является информационным для вашего приложения. Приложение не контролирует, сколько времени дает система. Вы можете запросить некоторое фоновое время, чтобы завершить sh действие, запрошенное пользователем, и вы можете его получить, но вы не можете контролировать, сколько времени. Вам нужно будет изменить дизайн, чтобы не требовать этого.

Смысл beginBackgroundTask состоит в том, чтобы отмечать действия конечной длины, которые, если бы приложение было go на заднем плане посередине, было бы полезно чтобы получить несколько дополнительных секунд до конца sh. Например, если вы запускаете фоновые задачи в willEnterBackground, или вы не вызываете балансировку endBackgroundTask своевременно, вы, вероятно, неправильно используете систему, и система, как правило, вообще не дает вам фонового времени.

См. Достижения в фоновом исполнении приложений для получения последних руководств Apple по фоновому выполнению.

...