Junior
Co je WorkManager?
sobes.tech AI
Odpověď od AI
WorkManager je doporučené řešení v Androidu pro odložené provádění garantované práce na pozadí, která musí být provedena, i když aplikace byla ukončena nebo zařízení restartováno.
Je součástí sady knihoven Android Jetpack a nabízí flexibilní a spolehlivý způsob plánování úkolů.
Hlavní výhody:
- Zaručené provedení: WorkManager zaručuje provedení práce na pozadí, i když byla aplikace násilně ukončena nebo zařízení restartováno.
- Podpora constraints: Umožňuje definovat podmínky pro provedení práce (například dostupnost sítě, stav baterie).
- Podpora jednorázových a periodických úkolů: Lze plánovat jak jednorázové, tak opakující se úkoly.
- Podpora zrušení práce: Poskytuje mechanismy pro zrušení naplánované práce.
- Kompatibilita s různými verzemi Androidu: Používá odpovídající API podle verze OS (JobScheduler, AlarmManager a BroadcastReceiver).
- Podpora složitých pracovních grafů: Umožňuje spojovat více úkolů do řetězců nebo paralelních skupin.
Hlavní komponenty:
Worker: Definuje skutečnou práci, kterou je třeba vykonat.WorkRequest: Definuje, jak a kdy má být práce provedena. ExistujíOneTimeWorkRequestaPeriodicWorkRequest.WorkManager: Plánuje a spravujeWorkRequest.
Příklad použití:
// Vytvoření WorkRequest pro jednorázovou úlohu
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<MyUploadWorker>()
.build()
// Naplánování úlohy
WorkManager.getInstance(context).enqueue(uploadWorkRequest)
// Příklad třídy Worker
class MyUploadWorker(
appContext: Context,
workerParams: WorkerParameters
) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Zde se provádí těžká nebo na pozadí práce
return Result.success() // nebo Result.failure(), Result.retry()
}
}