Какие знаешь компоненты для периодической работы в фоне

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

Ответ

В Android есть несколько компонентов для фоновой работы:

  1. WorkManager - лучший выбор для отложенных или периодических задач. Гарантирует выполнение даже после перезагрузки. Пример:
val workRequest = PeriodicWorkRequestBuilder<MyWorker>(1, TimeUnit.HOURS).build()
WorkManager.getInstance(context).enqueue(workRequest)
  1. AlarmManager - для точного планирования, но требует Android 6+ для Doze mode оптимизаций.

  2. JobScheduler (API 21+) - для задач с условиями (сеть, зарядка).

  3. Foreground Service - для долгих операций с обязательным уведомлением.

  4. BroadcastReceiver (с ограничениями начиная с Android 8) - для реагирования на системные события.

Для Android 12+ особенно важно учитывать новые ограничения на фоновую работу. WorkManager - предпочтительный вариант в большинстве случаев.