Ответ
В Android процессы имеют разные приоритеты в зависимости от их важности. Система убивает процессы по мере необходимости, начиная с наименее важных:
- Foreground – активный процесс (Activity, Service с
startForeground(), BroadcastReceiver вonReceive()). Высший приоритет. - Visible – процесс без активного UI, но влияющий на видимый экран (например,
ServiceсonStartCommand()). - Service – фоновый сервис (
startService()), но без привязки к UI. - Cached – процессы без активных компонентов, сохранённые для быстрого запуска. Убиваются первыми при нехватке памяти.
Пример:
// Foreground Service
val notification = NotificationCompat.Builder(this, CHANNEL_ID).build()
startForeground(1, notification)