Жизненный цикл приложения
Состояния
- Not running — процесс не запущен или завершён системой/пользователем.
- Inactive — приложение на экране, но не получает события: входящий звонок, открытый Control Center / Notification Center, app switcher, системный алерт (запрос разрешения). Переходное состояние.
- Active — нормальная работа на переднем плане, события доставляются.
- Background — приложение не на экране, но код ещё выполняется: несколько секунд на завершение дел (
beginBackgroundTask), либо дольше при объявленном background mode (аудио, геолокация, VoIP,BGTaskScheduler, backgroundURLSession). - Suspended — приложение в памяти, но код не выполняется. Переход происходит без уведомления; при нехватке памяти система выгружает приложение, тоже молча (
applicationWillTerminateне вызывается).
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep