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 istanzeWorkerin Threading nel worker.CoroutineWorkerè l'implementazione consigliata per gli utenti di Kotlin.CoroutineWorkeristanze espongono una funzione di sospensione per il lavoro in background. Per impostazione predefinita, viene eseguito unDispatcherpredefinito, che puoi personalizzare. Scopri di più sull'organizzazione in thread nelle istanzeCoroutineWorkerin 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 istanzeRxWorkerin Threading in RxWorker.ListenableWorkerè la classe base perWorker,CoroutineWorkereRxWorker. È destinato agli sviluppatori Java che devono interagire con API asincrone basate su callback comeFusedLocationProviderCliente non utilizzano RxJava. Scopri di più sull'organizzazione in thread delle istanzeListenableWorkerin Threading inPE WatchableWorker.