Какие знаешь способы работы в фоне

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

Ответ

В Android есть несколько способов выполнения задач в фоне:

  1. Service – для долгих операций без UI. Бывает Started (через startService()) и Bound (через bindService()). С API 26 ограничены фоновые сервисы.

  2. WorkManager – для отложенных задач, которые должны выполниться даже после перезапуска приложения. Работает через JobScheduler/AlarmManager в зависимости от версии API.

val workRequest = OneTimeWorkRequestBuilder<MyWorker>().build()
WorkManager.getInstance(context).enqueue(workRequest)
  1. JobScheduler (API 21+) – для периодических задач с условиями (например, при подключении к Wi-Fi).

  2. AlarmManager – для точного планирования задач, но менее энергоэффективен.

  3. Foreground Service – сервис с обязательным уведомлением в шторке. Нужен для долгих заметных пользователю операций (например, воспроизведение музыки).

  4. BroadcastReceiver – для реагирования на системные события (например, включение авиарежима).

Для кратких задач (менее 10 минут) лучше использовать WorkManager, для долгих – Foreground Service с уведомлением.