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

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

Ответ

WorkManager поддерживает несколько типов работы (WorkRequest):

  1. OneTimeWorkRequest - однократное выполнение задачи. Пример:
val uploadWork = OneTimeWorkRequestBuilder<UploadWorker>().build()
WorkManager.getInstance(context).enqueue(uploadWork)
  1. PeriodicWorkRequest - периодическое выполнение с интервалом (минимум 15 минут). Пример:
val syncWork = PeriodicWorkRequestBuilder<SyncWorker>(
    1, TimeUnit.HOURS // минимальный интервал - 15 минут
).build()
  1. Chained work - цепочка последовательных задач с помощью beginWith()/then():
WorkManager.getInstance(context)
    .beginWith(workA)
    .then(workB)
    .enqueue()
  1. Parallel work - параллельное выполнение через WorkContinuation.combine()

WorkManager автоматически выбирает оптимальный способ выполнения (JobScheduler, AlarmManager или BroadcastReceiver) в зависимости от версии Android.