Threading in WorkManager

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 istanze Worker 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 un Dispatcher predefinito, che puoi personalizzare. Scopri di più sull'organizzazione in thread nelle istanze CoroutineWorker 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 istanze RxWorker in Threading in RxWorker.
  • ListenableWorker è la classe base per Worker, CoroutineWorker e RxWorker. È destinato agli sviluppatori Java che devono interagire con API asincrone basate su callback come FusedLocationProviderClient e non utilizzano RxJava. Scopri di più sull'organizzazione in thread delle istanze ListenableWorker in Threading inPE WatchableWorker.