Em Primeiros passos com o WorkManager, mencionamos que o WorkManager realiza trabalho em segundo plano de forma assíncrona por você. A implementação básica atende às demandas da maioria dos apps. Para casos de uso mais avançados, como lidar corretamente com a interrupção do trabalho, você precisa aprender sobre linhas de execução e simultaneidade no WorkManager.
Há quatro tipos diferentes de primitivos de trabalho fornecidos pelo WorkManager:
Worker
é a implementação mais simples e a que você viu nas seções anteriores. O WorkManager o executa automaticamente em uma linha de execução em segundo plano, que você pode substituir. Leia mais sobre linhas de execução em instânciasWorker
em Linhas de execução no Worker.CoroutineWorker
é a implementação recomendada para os usuários do Kotlin. As instânciasCoroutineWorker
expõem uma função de suspensão para trabalho em segundo plano. Elas executam umDispatcher
padrão, que pode ser personalizado. Leia mais sobre linhas de execução em instânciasCoroutineWorker
em Threads no CoroutineWorker.RxWorker
é a implementação recomendada para os usuários do RxJava. Use os RxWorkers se grande parte do código assíncrono existente for modelado no RxJava. Assim como ocorre com todos os conceitos do RxJava, você pode escolher a estratégia de linha de execução de sua preferência. Leia mais sobre linhas de execução em instânciasRxWorker
em Linhas de execução no RxWorker.ListenableWorker
é a classe base paraWorker
,CoroutineWorker
eRxWorker
. Ela é destinada a desenvolvedores Java que precisam interagir com APIs assíncronas baseadas em callback, comoFusedLocationProviderClient
, e que não estejam usando RxJava. Leia mais sobre linhas de execução em instânciasListenableWorker
em Threads no ListenableWorker.