Когда приложение iOS переходит из состояния active в inactive?

«Когда приложение iOS переходит из состояния active в inactive?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Приложение переходит из active в inactive при временном прерывании его работы, когда оно все еще находится на переднем плане, но не обрабатывает события. Это происходит в следующих случаях:

Типичные сценарии:

  1. Системные прерывания: входящий звонок, SMS, системное уведомление.
  2. Переход в многозадачность: нажатие кнопки Home или жест вверх для вызова App Switcher.
  3. Открытие панелей: появление Control Center или Notification Center.
  4. Системные алерты: запрос разрешения на доступ к камере, микрофону и т.д.

Обработка в AppDelegate:

func applicationWillResignActive(_ application: UIApplication) {
    // Приложение вот-вот станет inactive.
    // Здесь следует:
    // - Приостановить активные таймеры и анимации.
    // - Остановить ресурсоемкие задачи (например, воспроизведение видео).
    // - Сохранить состояние игры или приложения.
}

Состояние inactive — это кратковременный этап перед переходом в background (если пользователь покидает приложение) или немедленным возвратом в active (когда прерывание завершается).