Nella Guida introduttiva a WorkManager abbiamo accennato al fatto che WorkManager esegue il lavoro in background in modo asincrono per tuo conto. L'implementazione di base soddisfa le esigenze della maggior parte delle app. Per casi d'uso più avanzati, ad esempio per gestire correttamente l'interruzione del lavoro, scopri di più sull'organizzazione in thread e sulla contemporaneità in WorkManager.
Sono disponibili quattro diversi tipi di primitive di lavoro fornite da WorkManager:
Worker
è l'implementazione più semplice e quella che hai visto nelle sezioni precedenti. WorkManager lo esegue automaticamente su un thread in background (che puoi sostituire). Scopri di più sull'organizzazione in thread nelle istanzeWorker
in Threading nel worker.CoroutineWorker
è l'implementazione consigliata per gli utenti di Kotlin.CoroutineWorker
istanze espongono una funzione di sospensione per il lavoro in background. Per impostazione predefinita, viene eseguito unDispatcher
predefinito, che puoi personalizzare. Scopri di più sull'organizzazione in thread nelle istanzeCoroutineWorker
in Threading in CoroutineWorker.RxWorker
è l'implementazione consigliata per gli utenti di RxJava. Occorre utilizzare RxWorkers se gran parte del codice asincrono esistente è modellata in RxJava. Come per tutti i concetti di RxJava, puoi scegliere liberamente la strategia di organizzazione in thread. Scopri di più sul threading nelle istanzeRxWorker
in Threading in RxWorker.ListenableWorker
è la classe base perWorker
,CoroutineWorker
eRxWorker
. È destinato agli sviluppatori Java che devono interagire con API asincrone basate su callback comeFusedLocationProviderClient
e non utilizzano RxJava. Scopri di più sull'organizzazione in thread delle istanzeListenableWorker
in Threading inPE WatchableWorker.