Расскажи про приоритет процессов

«Расскажи про приоритет процессов» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android процессы имеют разные приоритеты в зависимости от их важности. Система убивает процессы по мере необходимости, начиная с наименее важных:

  1. Foreground – активный процесс (Activity, Service с startForeground(), BroadcastReceiver в onReceive()). Высший приоритет.
  2. Visible – процесс без активного UI, но влияющий на видимый экран (например, Service с onStartCommand()).
  3. Service – фоновый сервис (startService()), но без привязки к UI.
  4. Cached – процессы без активных компонентов, сохранённые для быстрого запуска. Убиваются первыми при нехватке памяти.

Пример:

// Foreground Service
val notification = NotificationCompat.Builder(this, CHANNEL_ID).build()
startForeground(1, notification)