Begrensninger og planlegging
Kjør arbeid under de riktige betingelsene.
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.)setRequiresChargingsetRequiresBatteryNotLowsetRequiresDeviceIdlesetRequiresStorageNotLow
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.Builderangir betingelser som nettverk og ladingOneTimeWorkRequestBuilderbygger forespørselenenqueue/enqueueUniqueWorksender den inn- Konfigurer backoff, observer tilstanden og legg til tagger for arbeidet
Neste: periodisk og kjedet arbeid.
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
- Når skal De bruke WorkManager?
- Opprette en Worker
- Begrensninger og planlegging
- Periodisk og kjedet arbeid