IOS: отменяет ли принудительное действие приложение при загрузке фона при помощи NSURLSession?

Вопрос о NSURLSession и NSURLSessionUploadTask.

Я загружаю большие файлы на сервер и заметил, что когда я принудительно завершаю приложение, вся загрузка фона просто прекращается. Однако, когда загрузка начинается, когда приложение запускается через Xcode/debugger, моя загрузка заканчивается только штрафом даже, когда я останавливаю приложение, запускаемое с помощью кнопки Xcode 'stop'. Я подозреваю, что сила, покидающая приложение с помощью Xcode, имитирует команду системы iOS, а не действие пользователя.

Итак, мой вопрос: верно ли, что iOS немедленно отменит NSURLSessionUploadTask, когда пользователь закроет приложение? По какой-то причине я бы по крайней мере ожидал обратного вызова ошибки для приложения, однако ничего не происходит.

Ответы

Ответ 1

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

Надеюсь, это поможет кому-то взглянуть на одно и то же.

Ответ 2

От Apple docs об использовании фона:

Если задачи еще не завершены, и система завершает работу приложения, система автоматически продолжает управлять задачами в фоновом режиме. Если пользователь завершает ваше приложение, система отменяет любые ожидающие решения задачи.