Ответ
В Android есть несколько способов выполнения задач в фоне:
-
Service – для долгих операций без UI. Бывает
Started(черезstartService()) иBound(черезbindService()). С API 26 ограничены фоновые сервисы. -
WorkManager – для отложенных задач, которые должны выполниться даже после перезапуска приложения. Работает через
JobScheduler/AlarmManagerв зависимости от версии API.
val workRequest = OneTimeWorkRequestBuilder<MyWorker>().build()
WorkManager.getInstance(context).enqueue(workRequest)
-
JobScheduler (API 21+) – для периодических задач с условиями (например, при подключении к Wi-Fi).
-
AlarmManager – для точного планирования задач, но менее энергоэффективен.
-
Foreground Service – сервис с обязательным уведомлением в шторке. Нужен для долгих заметных пользователю операций (например, воспроизведение музыки).
-
BroadcastReceiver – для реагирования на системные события (например, включение авиарежима).
Для кратких задач (менее 10 минут) лучше использовать WorkManager, для долгих – Foreground Service с уведомлением.