В чем разница между Foreground и Background Service

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

Ответ

Foreground Service требует отображения уведомления (Notification) и имеет более высокий приоритет, поэтому система реже его убивает. Используется для задач, которые пользователь явно осознает (музыка, навигация).

Background Service работает без уведомления и может быть остановлен системой для экономии ресурсов. С Android 8+ ограничен - нельзя запускать напрямую, нужно использовать WorkManager или JobScheduler.

Пример Foreground Service:

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

startForeground(1, notification)

Ключевые отличия:

  • Видимость для пользователя (уведомление)
  • Приоритет выполнения
  • Ограничения в новых версиях Android