IOS: отменяет ли принудительное действие приложение при загрузке фона при помощи NSURLSession?
Вопрос о NSURLSession и NSURLSessionUploadTask.
Я загружаю большие файлы на сервер и заметил, что когда я принудительно завершаю приложение, вся загрузка фона просто прекращается. Однако, когда загрузка начинается, когда приложение запускается через Xcode/debugger, моя загрузка заканчивается только штрафом даже, когда я останавливаю приложение, запускаемое с помощью кнопки Xcode 'stop'. Я подозреваю, что сила, покидающая приложение с помощью Xcode, имитирует команду системы iOS, а не действие пользователя.
Итак, мой вопрос: верно ли, что iOS немедленно отменит NSURLSessionUploadTask, когда пользователь закроет приложение? По какой-то причине я бы по крайней мере ожидал обратного вызова ошибки для приложения, однако ничего не происходит.
Ответы
Ответ 1
Теперь я могу подтвердить это после того, как тестовая проверка будет выполняться нормально, если приложение просто помещено в фоновый режим. Однако, если пользовательская сила отключена, приложение iOS отменяет все запланированные фоновые задачи. Итак, в следующий раз, когда приложение запущено, я получаю все обратные вызовы делегату с кодом ошибки отмененной задачи.
Надеюсь, это поможет кому-то взглянуть на одно и то же.
Ответ 2
От Apple docs об использовании фона:
Если задачи еще не завершены, и система завершает работу приложения, система автоматически продолжает управлять задачами в фоновом режиме. Если пользователь завершает ваше приложение, система отменяет любые ожидающие решения задачи.