Articles

Programarea sarcinilor cu WorkManager Face parte din Android Jetpack.

WorkManager este un API care facilitează programarea de sarcini asincrone, care pot fi amânate și care se așteaptă să fie executate chiar dacă aplicația se închide sau dispozitivul se repornește. API-ul WorkManager este un înlocuitor adecvat și recomandat pentru toate API-urile anterioare de programare în fundal pentru Android, inclusivFirebaseJobDispatcher, GcmNetworkManager și Job Scheduler. WorkManagerîncorporează caracteristicile predecesorilor săi într-o API modernă și coerentă, care revine la nivelul API 14, fiind în același timp atentă la durata de viață a bateriei.

Sub capotă WorkManager utilizează un serviciu subiacent de dispecerizare a lucrărilor bazat pe următoarele criterii:

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.

Nota: Dacă aplicația dvs. vizează Android 10 (nivel API 29) sau mai sus, apelurile APIFirebaseJobDispatcher și GcmNetworkManager nu vor mai funcționa pe dispozitivele care rulează Android Marshmallow (6.0) și mai sus. Urmați ghidurile de migrare pentruFirebaseJobDispatcherși GcmNetworkManagerpentru îndrumări privind migrarea. De asemenea, consultați anunțul Unifying Background Task Scheduling onAndroid pentru mai multe informații cu privire la devalorizarea acestora.

Caracteristici

Pe lângă faptul că oferă un API mai simplu și mai coerent, WorkManager are o serie de alte beneficii cheie, inclusiv:

Work Constraints

Definiți în mod clar condițiile optime pentru ca munca dvs. să ruleze folosind WorkConstraints.(De exemplu, rulați numai atunci când dispozitivul este Wi-Fi, când dispozitivul este inactiv sau când are suficient spațiu de stocare etc.)

Programare robustă

WorkManager vă permite să programați lucrările pentru a fi executate o singură dată sau în mod repetat folosind ferestre de programare flexibile. Lucrările pot fi, de asemenea, etichetate și denumite, permițându-vă să programați lucrări unice, înlocuibile și să monitorizați sau să anulați grupuri de lucrăriîmpreună. Munca programată este stocată într-o bază de date SQLite gestionată intern, iarWorkManager are grijă să se asigure că această muncă persistă și este reprogramatăîntre repornirile dispozitivului. În plus, WorkManager aderă la funcțiile de economisire a energiei și la cele mai bune practici, cum ar fi modul Doze,astfel încât nu trebuie să vă faceți griji în această privință.

Politică flexibilă de reluare a activității

Uneori munca eșuează. WorkManager oferă politici flexibile de reluare a încercărilor,inclusiv o politică de revenire exponențială configurabilă.

Work Chaining

Pentru lucrări complexe legate între ele, înlănțuiți sarcinile de lucru individuale folosind o interfață fluentă, naturală, care vă permite să controlați care piese se execută secvențial și care se execută în paralel.

Kotlin

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

Java

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

Pentru fiecare sarcină de lucru, puteți defini datele de intrare și de ieșire pentru lucrarea respectivă. Atunci când se înlănțuie lucrările împreună, WorkManager trece automat datele de ieșire de la o sarcină de lucru la următoarea.

Interoperabilitate de fire de execuție încorporată

WorkManager se integrează fără probleme cuRxJava șiCoroutinesși oferă flexibilitatea de a vă conecta propriileAPI asincrone.

Utilizați WorkManager pentru lucrări care pot fi amânate și fiabile

WorkManager este destinat lucrărilor care pot fi amânate – adică care nu trebuie să se execute imediat – și care trebuie să se execute în mod fiabil chiar dacă aplicația iese din aplicație sau dacă dispozitivul se repornește. De exemplu:

  • În trimiterea de jurnale sau analize către servicii backend
  • Sincronizarea periodică a datelor aplicației cu un server

WorkManager nu este destinat lucrărilor de fundal în proces care pot fi terminate în siguranță dacă procesul aplicației dispare sau lucrărilor care necesită o execuție imediată. Vă rugăm să consultați ghidul de procesare în fundal pentru a vedea ce soluție răspunde nevoilor dumneavoastră.

Getting Started

Consultați ghidul Getting started pentru a începe să utilizațiWorkManager în aplicația dumneavoastră.

.