Plánování úloh pomocí WorkManageru Součást Android Jetpack.
WorkManager je rozhraní API, které usnadňuje plánování asynchronních úloh s možností odkladu, které se mají spustit i po ukončení aplikace nebo restartu zařízení. API WorkManager jevhodnou a doporučenou náhradou všech předchozích API pro plánování úloh na pozadí systému Android, včetněFirebaseJobDispatcher,GcmNetworkManager a Job Scheduler. WorkManagerzahrnuje funkce svých předchůdců do moderního, konzistentního API, které pracuje zpětně na úrovni API 14 a zároveň bere ohled na životnost baterie.
Pod kapotou WorkManager používá základní službu pro dispečink úloh založenou na následujících kritériích:
Poznámka: Pokud je vaše aplikace zaměřena na systém Android 10 (úroveň API 29) nebo vyšší, volání rozhraní API FirebaseJobDispatcher a GcmNetworkManager již nebudou fungovat na zařízeních se systémem Android Marshmallow (6.0) a vyšším. Postupujte podle migračních příruček proFirebaseJobDispatcher a GcmNetworkManager, kde naleznete pokyny pro migraci. Další informace o jejich zastarání naleznete také v oznámení Unifying Background Task Scheduling onAndroid.
Features
Kromě toho, že WorkManager poskytuje jednodušší a konzistentní API, má řadu dalších klíčových výhod, včetně:
Work Constraints
Deklarativně definujte optimální podmínky pro běh vaší práce pomocí WorkConstraints.(Například spustit pouze tehdy, když je zařízení Wi-Fi, když je zařízení v nečinnosti nebo když má dostatek úložného prostoru atd.)
Robustní plánování
WorkManager umožňuje naplánovat práci k jednorázovému nebo opakovanému spuštění pomocí flexibilních plánovacích oken. Práce lze také označovat a pojmenovávat, což umožňuje plánovat jedinečné, nahraditelné práce a sledovat nebo rušit skupiny prací společně. Naplánovaná práce je uložena v interně spravované databázi SQLite aWorkManager se stará o to, aby tato práce přetrvávala a byla přeplánována i po restartu zařízení. WorkManager navíc dodržuje funkce pro úsporu energie a osvědčené postupy, jako je režim Doze,takže se o něj nemusíte starat.
Pružná politika opakování
Někdy se práce nezdaří. WorkManager nabízí flexibilní politiku opakování, včetně konfigurovatelné exponenciální politiky zpětného zpoždění.
Řetězení prací
Pro komplexní související práci můžete jednotlivé pracovní úlohy řetězit dohromady pomocí plynulého, přirozeného rozhraní, které vám umožní řídit, které části běží postupně a které paralelně.
Kotlin
WorkManager.getInstance(...) .beginWith(listOf(workA,workB)) .then(workC) .enqueue()
Java
WorkManager.getInstance(...) .beginWith(Arrays.asList(workA, workB)) .then(workC) .enqueue();
Pro každou pracovní úlohu můžete definovat vstupní a výstupnídata pro tuto práci. Při řetězení prací WorkManager automaticky předávávýstupní data z jedné pracovní úlohy do další.
Vestavěná interoperabilita s vlákny
WorkManager se bezproblémově integruje sRxJava aCoroutines a poskytuje flexibilitu pro připojení vlastních asynchronníchAPI.
Používejte WorkManager pro odkladnou a spolehlivou práci
WorkManager je určen pro práci, která je odkladná – to znamená, že se nevyžaduje její okamžité spuštění – a vyžaduje se její spolehlivé spuštění i v případě ukončení aplikace nebo restartu zařízení. Například:
- Odesílání protokolů nebo analýz do backendových služeb
- Periodická synchronizace dat aplikace se serverem
WorkManager není určen pro práci na pozadí v procesu, která může být bezpečně ukončena, pokud proces aplikace odejde, nebo pro práci, která vyžaduje okamžité provedení. Prostudujte si prosím průvodce zpracováním na pozadí, abyste zjistili, které řešení vyhovuje vašim potřebám.
Začínáme
Podívejte se na průvodce Začínáme, abyste mohli začít používatWorkManager ve své aplikaci.