Я пытаюсь выполнить некоторую финальную обработку, прежде чем приложение iOS (iOS 13.1) переместится в фоновый режим и поигралось с очень простым примером, просто чтобы посмотреть, что происходит:
let identifier = UIApplication.shared.beginBackgroundTask(withName: "mywork", expirationHandler: {
print("Expiration handler called")
})
for i in 1...500 {
print("[\(Date())] Step \(i)")
sleep(1)
}
UIApplication.shared.endBackgroundTask(identifier)
Когда я запускаю код, я нажимаю кнопку «Домой», чтобы открыть приложение в фоновом режиме, а затем консоль печатает до 55 и останавливается. Для большего контекста я работаю на реальном устройстве.
- Почему не отображается оператор печати обработчика срока действия? Разве не должен вызываться обработчик истечения срока действия?
- Люди говорили, что обычно у них около 3 минут, а у меня меньше 1 минуты, есть ли причина, по которой он короче?
- AppDelegateметод
applicationDidEnterBackground
также не вызывался в моем тестировании, разве этот метод не должен вызываться по крайней мере? - Есть ли какая-либо причина, по которой при обработке файлов это будет короче, потому что я пытаюсьнапишите некоторые файлы, но мне кажется, у меня уходит всего 15 секунд на обработку, прежде чем она остановится.
Буду признателен за любые советы или советы, спасибо!