Выбор ответа Middle Сеть, Codable и хранение обновлено

Загрузка видео в фоне

Вопрос

Пользователь начал загрузку большого видео и свернул приложение. Как дать загрузке завершиться?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Фоновая сессия URLSessionConfiguration.background и upload из файла. Фоновая сессия передаёт задачу системному демону, и загрузка продолжается, даже если приложение приостановлено или выгружено.

Варианты ответа

  1. Обычный URLSession.shared внутри Task с низким приоритетом в фоне
  2. Фоновая сессия URLSessionConfiguration.background и upload из файлаправильный ответ
  3. beginBackgroundTask на всё время загрузки, сколько бы она ни шла
  4. Запретить приложению уходить в фон ключом в Info.plist на время загрузки

Разбор

Фоновая сессия передаёт задачу системному демону, и загрузка продолжается, даже если приложение приостановлено или выгружено. По завершении система разбудит приложение и вызовет handleEventsForBackgroundURLSession. Upload в фоне поддерживается только из файла. Обычная сессия остановится вместе с приложением. beginBackgroundTask даёт лишь короткое время на завершение работы. Запретить уход в фон нельзя.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.