Какие знаешь случаи использования Service вместо WorkManager

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

Ответ

Service используется для долгосрочных фоновых задач, требующих работы в фоне даже после закрытия приложения, например:

  • Воспроизведение музыки (MediaPlayer в ForegroundService)
  • Загрузка файлов (IntentService/JobIntentService)
  • Слежение за геолокацией (ForegroundService с нотификацией)
  • Сетевое взаимодействие (WebSockets, MQTT)

WorkManager же предназначен для отложенных, гарантированных задач, которые должны выполниться даже после перезагрузки устройства (например, синхронизация данных, отправка логов).

Пример Service:

class MusicService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        startForeground(NOTIFICATION_ID, createNotification())
        // Логика воспроизведения
        return START_STICKY
    }
}