Какие знаешь ограничения у Background Service

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

Ответ

Background Services в Android имеют несколько ключевых ограничений:

  1. Ограничения на фоновую работу (начиная с Android 8+):

    • Сервис будет остановлен системой через несколько минут, если не перевести его в foreground с уведомлением.
    • На Android 9+ запрещён доступ к камере/микрофону из фона.
  2. Ограничения батареи:

    • Doze mode и App Standby ограничивают фоновую работу.
    • JobScheduler предпочтительнее для отложенных задач.
  3. Ограничения памяти:

    • Система может убить сервис при нехватке памяти.

Пример Foreground Service:

val notification = NotificationCompat.Builder(this, CHANNEL_ID)
    .setContentTitle("Service running")
    .build()

startForeground(1, notification)