Что если не отображать нотификацию у Foreground Service

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

Ответ

Если не отображать уведомление для Foreground Service, система Android (начиная с API 26) принудительно завершит сервис через несколько секунд. Это требование безопасности, чтобы пользователь знал о фоновой работе приложения.

Исключения:

  • Системные сервисы (требуют специальных разрешений)
  • Скрытые уведомления (setOngoing(true) + низкий priority), но всё равно обязаны быть

Пример создания обязательного уведомления:

val notification = NotificationCompat.Builder(this, CHANNEL_ID)
    .setContentTitle("Сервис работает")
    .setSmallIcon(R.drawable.ic_notification)
    .build()

startForeground(NOTIFICATION_ID, notification)

Минимальный приоритет (priority = Notification.PRIORITY_MIN) сделает уведомление менее заметным, но полностью убрать его нельзя.