Articles

Taken plannen met WorkManager Onderdeel van Android Jetpack.

WorkManager is een API die het gemakkelijk maakt om uitstelbare, asynchrone taken te plannen die worden verwacht te draaien, zelfs als de app afsluit of het apparaat opnieuw opstart. De WorkManager API is een geschikte en aanbevolen vervanging voor alle vorige Android achtergrondplanning API’s, waaronder Firebase JobDispatcher, GcmNetworkManager en Job Scheduler. WorkManager incorporeert de kenmerken van zijn voorgangers in een moderne, consistente API die terugwerkt naar API-niveau 14 en tegelijkertijd rekening houdt met de levensduur van de batterij.

Onder de motorkap maakt WorkManager gebruik van een onderliggende taakverdelingsservice die is gebaseerd op de volgende criteria:

If the device is running on API Level 23 or higher, JobScheduler is used. OnAPI Levels 14-22, GcmNetworkManager is chosen if it's available, otherwise, acustom AlarmManager and BroadcastReciever implementation is used as afallback.

Note: als uw app is gericht op Android 10 (API-niveau 29) of hoger, werken de API-aanroepen van FirebaseJobDispatcher en GcmNetworkManager niet meer op apparaten die draaien op Android Marshmallow (6.0) en hoger. Volg de migratiegidsen voorFirebaseJobDispatcherenGcmNetworkManagervoor richtlijnen bij het migreren. Zie ook de aankondiging Unifying Background Task Scheduling onAndroid voor meer informatie over hun deprecation.

Features

Naast het bieden van een eenvoudigere en consistente API, heeft WorkManager nog een aantal andere belangrijke voordelen, waaronder:

Work Constraints

Definieer op een duidelijke manier de optimale voorwaarden voor het uitvoeren van uw werk met WorkConstraints.(Bijvoorbeeld, alleen uitvoeren wanneer het apparaat Wi-Fi is, wanneer het apparaat inactief is, of wanneer het voldoende opslagruimte heeft, enz.)

Robuust plannen

WorkManager stelt u in staat om werk in te plannen om eenmalig of herhaaldelijk uit te voeren met behulp van flexibel in te plannen vensters. Werk kan ook worden gelabeld en benoemd, zodat u uniek, vervangbaar werk kunt plannen en groepen werk samen kunt controleren of annuleren. Gepland werk wordt opgeslagen in een intern beheerde SQLite database en WorkManager zorgt ervoor dat dit werk blijft bestaan en opnieuw wordt ingepland tijdens het herstarten van het apparaat. Bovendien houdt WorkManager zich aan energiebesparende functies en best practices zoals de Doze-modus, zodat u zich daar geen zorgen over hoeft te maken.

Flexibel retrybeleid

Soms mislukt het werk. WorkManager biedt een flexibel retry-beleid, inclusief een configureerbare exponentiële backoff-policy.

Work Chaining

Voor complex gerelateerd werk kunt u individuele taken aan elkaar koppelen met behulp van een vloeiende, natuurlijke interface waarmee u kunt bepalen welke delen opeenvolgend en welke parallel worden uitgevoerd.

Kotlin

WorkManager.getInstance(...) .beginWith(listOf(workA,workB)) .then(workC) .enqueue()

Java

WorkManager.getInstance(...) .beginWith(Arrays.asList(workA, workB)) .then(workC) .enqueue();

Voor elke werktaak kunt u invoer- en uitvoergegevens voor dat werk definiëren. Wanneer u werk aan elkaar koppelt, geeft WorkManager automatisch uitvoergegevens door van de ene werktaak aan de volgende.

Ingebouwde Threading-interoperabiliteit

WorkManager integreert naadloos metRxJava enCoroutines en biedt de flexibiliteit om uw eigen asynchroneAPI’s in te voegen.

Gebruik WorkManager voor uitstelbaar en betrouwbaar werk

WorkManager is bedoeld voor werk dat uitstelbaar is – dat wil zeggen, dat niet onmiddellijk hoeft te worden uitgevoerd – en dat betrouwbaar moet worden uitgevoerd, zelfs als de app wordt afgesloten of het apparaat opnieuw wordt opgestart. Bijvoorbeeld:

  • Logs of analyses naar backend services
  • Periodiek synchroniseren van applicatiegegevens met een server

WorkManager is niet bedoeld voor in-proces achtergrondwerk dat veilig kan worden afgebroken als het app proces weggaat of voor werk dat onmiddellijke uitvoering vereist. Bekijk de handleiding over achtergrondverwerking om te zien welke oplossing aan uw behoeften voldoet.

Aan de slag

Kijk in de handleiding Aan de slag om WerkManager in uw app te gaan gebruiken.