Что приложение может делать в фоне: BGTaskScheduler, background URLSession и их ограничения?
Суть
Через несколько секунд после ухода в фон приложение приостанавливается (Suspended): код не выполняется, а при нехватке памяти процесс молча выгружается. Работать в фоне можно только через разрешённые механизмы, и каждый из них — не обещание, а просьба к системе: когда и сколько времени дать, iOS решает по заряду, сети, частоте использования приложения и настройкам пользователя.
Инструмент выбирают по задаче: дозавершить начатое — beginBackgroundTask; освежить данные — BGAppRefreshTask; тяжёлое обслуживание — BGProcessingTask; передать файлы — background URLSession; отреагировать на событие сервера — silent push; работать непрерывно — только специальные background modes.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep