Sobes.tech
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()