У меня есть прототип однозадачного приложения, которое контролирует задачи загрузки.Мониторинг NSURLSession после перезагрузки приложения
Я пытаюсь справиться с следующим прецедентом:
- Загрузки инициируются через NSURLSession в то время как приложение находится на переднем плане. NSURLSession создается с настройкой фона.
- Я убью приложение с помощью «Xcode Stop», чтобы приложение продолжало загружать в фоновом режиме. В то время как приложение активно, я регулярно получаю обратные вызовы прогресса из NSURLSession.
- Я вручную запустил приложение (а не Xcode, но нажав значок запуска), когда загрузки еще не завершены.
- Я не получаю вызовы делегатов URLSession для задач, запущенных в предыдущем приложении. Единственное, что вызывается, это handleEventsForBackgroundURLSession, но это вызвано AppDelegate ОС (в другом случае, чем вызовы делегатов NSURLSession).
Я хочу показать ход текущих задач загрузки. Это можно сделать после перезагрузки приложения (когда приложение было прервано системой, а не вручную!)?
После перезагрузки приложения NSURLSession инициализируется с тем же идентификатором, новым объектом делегирования, поэтому я решил, что делегат продолжит принимать вызовы для задач сеанса (поскольку идентификатор сеанса один и тот же), но, видимо, это не так. Существует примечание в документации Apple:
Объект сеанса держит сильную ссылку на делегат, пока приложение явно обесценивает сессию. Если вы не сделаете недействительным сеанс, ваше приложение потеряет память.
, но я предполагаю, что это применимо только к случаю, когда приложение является живым. Когда приложение будет завершено, все объекты приложения исчезнут.
эй, в этом «BG Transfer Demo», вы достигли возобновления загрузки после удаления приложения с backhround ??? –
Я не возобновляю загрузку, если приложение было вручную (пользователем) удалено из фона. Когда это произойдет, iOS, вероятно, отменяет сеансы URL. После перезапуска приложения вы можете вручную проверить состояние ваших задач и выполнить правильные действия. Если хотите, я могу отправить вам «BG Transfer Demo» или загрузить в какой-то репозиторий для проверки. – mixtly87
Да, пожалуйста, пришлите мне демо на мой идентификатор gmail. 'patelmonika006 @ gmail.com' & ' patelmonika0612 @ gmail.com' Спасибо заранее. –