Android Academy · leksjon

Begrensninger og planlegging

Kjør arbeid under de riktige betingelsene.

Leksjon 3 av 413 trinn

Begrensninger og planlegging er en gratis leksjon i Android Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Android Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Android Academy inneholder totalt 4 leksjoner.

Begrensninger og planlegging

En Worker definerer hva som skal gjøres. En WorkRequest definerer når og under hvilke betingelser det skal kjøres. Du bygger en forespørsel, legger til begrensninger og legger den i kø.

Hva er begrensninger

Begrensninger er betingelser som må være oppfylt før arbeidet kjører, for eksempel at det finnes en nettverkstilkobling eller at enheten lades. WorkManager venter til de er oppfylt.

Bygge begrensninger

Bruk Constraints.Builder til å erklære kravene dine.

val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.UNMETERED)
    .setRequiresCharging(true)
    .build()

Vanlige typer begrensninger

Vanlige begrensninger omfatter:

  • setRequiredNetworkType (CONNECTED, UNMETERED osv.)
  • setRequiresCharging
  • setRequiresBatteryNotLow
  • setRequiresDeviceIdle
  • setRequiresStorageNotLow

Bygge en OneTimeWorkRequest

For arbeid som skal kjøre én gang, bruker du OneTimeWorkRequestBuilder, parameterisert med worker-klassen din, og legger til begrensningene.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setConstraints(constraints)
    .build()

Sende inndata

Legg inndata ved forespørselen med setInputData; workeren leser dem via inputData.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setInputData(workDataOf("user_id" to "42"))
    .setConstraints(constraints)
    .build()

Legge arbeidet i kø

Hent WorkManager-instansen og kall enqueue. WorkManager lagrer forespørselen og kjører den når begrensningene er oppfylt.

WorkManager.getInstance(context).enqueue(request)

Backoff-policy

Når en worker returnerer retry(), venter WorkManager før den prøver på nytt. Konfigurer strategien med setBackoffCriteria, og velg lineær eller eksponentiell backoff.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setBackoffCriteria(
        BackoffPolicy.EXPONENTIAL,
        10, TimeUnit.SECONDS
    )
    .build()

Unikt arbeid

For å unngå å planlegge dupliserte jobber bruker du enqueueUniqueWork med et navn og en konfliktpolicy (KEEP, REPLACE eller APPEND).

WorkManager.getInstance(context).enqueueUniqueWork(
    "sync_job",
    ExistingWorkPolicy.KEEP,
    request
)

Observere arbeidstilstand

Du kan observere statusen til en forespørsel (ENQUEUED, RUNNING, SUCCEEDED, FAILED) via getWorkInfoByIdFlow eller LiveData. Dette er nyttig for å vise fremdrift i brukergrensesnittet.

WorkManager.getInstance(context)
    .getWorkInfoByIdFlow(request.id)
    .collect { info -> /* react to info.state */ }

Legge til tagger

Merk forespørsler med addTag, slik at du senere kan spørre etter eller avbryte grupper med relatert arbeid ved hjelp av taggen, for eksempel ved å avbryte alt «upload»-arbeid samtidig.

Kort test

Test forståelsen din av begrensninger og planlegging.

Oppsummering

Du planla arbeid med begrensninger:

  • Constraints.Builder angir betingelser som nettverk og lading
  • OneTimeWorkRequestBuilder bygger forespørselen
  • enqueue / enqueueUniqueWork sender den inn
  • Konfigurer backoff, observer tilstanden og legg til tagger for arbeidet

Neste: periodisk og kjedet arbeid.

Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
36
Leksjoner
152

Ofte stilte spørsmål

Er leksjonen «Begrensninger og planlegging» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Android Academy, inkludert «Begrensninger og planlegging», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Android Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Begrensninger og planlegging»?

Kjør arbeid under de riktige betingelsene. Du øver på Android Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Android Academy?

Ingen tidligere erfaring er nødvendig. Android Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Begrensninger og planlegging»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Android Academy-leksjonen?

Ja. Alle Android Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Når skal De bruke WorkManager?
  2. Opprette en Worker
  3. Begrensninger og planlegging
  4. Periodisk og kjedet arbeid
← Tilbake til Android Academy