С чем связаны ограничения на запуск Service

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

Ответ

Ограничения на запуск Service связаны с оптимизацией энергопотребления и работы системы, начиная с Android 8.0 (API 26).

  1. Фоновые ограничения:

    • Сервисы, запущенные в фоне (не привязанные к UI), могут быть остановлены системой.
    • Для долгих задач рекомендуется WorkManager или JobScheduler.
  2. Foreground Service:

    • Должен показывать уведомление (Notification), иначе будет IllegalStateException.
    val notification = NotificationCompat.Builder(this, CHANNEL_ID).build()  
    startForeground(NOTIFICATION_ID, notification)  
  1. Ограничения в Android 9+:

    • Приложения в фоне не могут запускать сервисы без startForegroundService().

Используйте IntentService (устарел) или JobIntentService для фоновых задач.