Какие знаешь механизмы позволяющие не уничтожать процесс системой

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

Ответ

Android предоставляет несколько механизмов для предотвращения уничтожения процесса системой:

  1. Foreground Service - сервис с уведомлением. Система считает его важным для пользователя.
startForeground(NOTIFICATION_ID, createNotification())
  1. Sticky Services - сервисы, которые система пытается перезапустить после убийства:
  • START_STICKY - перезапуск без сохранения интента
  • START_REDELIVER_INTENT - перезапуск с последним интентом
  1. Привязка к системным сервисам (bindService()) с флагом BIND_ABOVE_CLIENT.

  2. Частичные WakeLock (PowerManager) удерживает CPU активным, но требует разрешения WAKE_LOCK.

  3. JobScheduler/WorkManager для отложенных задач - система оптимизирует их выполнение.

Важно: злоупотребление этими механизмами ведет к повышенному расходу батареи и может негативно сказаться на пользовательском опыте.