Middle
Kādus WorkRequest veidus jūs zināt un kādus kritērijus var piemērot tiem?
sobes.tech AI
Atbilde no AI
WorkRequest veidi:
- OneTimeWorkRequest: Veic vienreiz, kad atitiktų jo apribojimus.
- PeriodicWorkRequest: Veikia daug kartų tam tikru laiko intervalu.
Apribojimai (Constraints), kuriuos galima taikyti WorkRequest:
setRequiredNetworkType(NetworkType networkType): Reikalaujamas tinklo tipas (CONNECTED, UNMETERED, NOT_ROAMING, METERED, NOT_REQUIRED):setRequiresCharging(boolean requiresCharging): Ar reikalingas įrenginio įkrovimas:setRequiresDeviceIdle(boolean requiresDeviceIdle): Ar reikalinga, kad įrenginys būtų neveikimo būsenoje:setRequiresBatteryNotLow(boolean requiresBatteryNotLow): Ar reikalingas, kad baterijos lygis nebūtų žemas:setRequiresStorageNotLow(boolean requiresStorageNotLow): Ar reikalinga, kad disko vieta nebūtų pilna:addContentUriTrigger(Uri uri, boolean triggerContentMaxDelay): Trigeris, kai keičiasi turinys pagal nurodytą Uri:setTriggerContentUpdateDelay(long duration, TimeUnit unit): Delsa prieš paleidžiant po turinio pakeitimo (OneTimeWorkRequest):setTriggerContentMaxDelay(long duration, TimeUnit unit): Maksimali delsa prieš paleidžiant po turinio pakeitimo (PeriodicWorkRequest):
Pavyzdys: kuriant OneTimeWorkRequest su apribojimais:
// Apribojimų kūrimas
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresCharging(true)
.build()
// Kuriant OneTimeWorkRequest su apribojimais
val workRequest = OneTimeWorkRequestBuilder<MyWorker>()
.setConstraints(constraints)
.build()
Pavyzdys: kuriant PeriodicWorkRequest su apribojimais:
// Apribojimų kūrimas
val constraints = Constraints.Builder()
.setRequiresDeviceIdle(true)
.build()
// Kuriant PeriodicWorkRequest su apribojimais
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES)
.setConstraints(constraints)
.build()