Junior
Čo je WorkManager?
sobes.tech AI
Odpoveď od AI
WorkManager je odporúčané riešenie v Androidu pre odložené vykonávanie garantovanej práce na pozadí, ktorá musí byť vykonaná, aj keď je aplikácia zatvorená alebo zariadenie reštartované.
Je súčasťou sady knižníc Android Jetpack a ponúka flexibilný a spoľahlivý spôsob plánovania úloh.
Hlavné výhody:
- Zaručené vykonanie: WorkManager garantuje vykonanie práce na pozadí, aj keď bola aplikácia nútene ukončená alebo zariadenie reštartované.
- Podpora constraints: Umožňuje definovať podmienky pre vykonanie práce (napríklad dostupnosť siete, stav batérie).
- Podpora jednorazových a periodických úloh: Môžete plánovať ako jednorazové, tak opakujúce sa úlohy.
- Podpora zrušenia práce: Poskytuje mechanizmy na zrušenie naplánovanej práce.
- Kompatibilita s rôznymi verziami Androidu: Používa príslušné API v závislosti od verzie OS (JobScheduler, AlarmManager a BroadcastReceiver).
- Podpora zložitých pracovných grafov: Umožňuje spájanie viacerých úloh do reťazcov alebo paralelných skupín.
Hlavné komponenty:
Worker: Definuje skutočnú prácu, ktorú je potrebné vykonať.WorkRequest: Definuje, ako a kedy má byť práca vykonaná. ExistujúOneTimeWorkRequestaPeriodicWorkRequest.WorkManager: Plánuje a spravujeWorkRequest.
Príklad použitia:
// Vytvorenie WorkRequest pre jednorazovú úlohu
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<MyUploadWorker>()
.build()
// Naplánovanie úlohy
WorkManager.getInstance(context).enqueue(uploadWorkRequest)
// Príklad triedy Worker
class MyUploadWorker(
appContext: Context,
workerParams: WorkerParameters
) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Tu sa vykonáva ťažká alebo pozadinská práca
return Result.success() // alebo Result.failure(), Result.retry()
}
}