Ответ
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