En la sección Cómo comenzar a usar WorkManager, mencionamos que WorkManager realiza por ti trabajos en segundo plano de forma asíncrona. La implementación básica aborda las demandas de la mayoría de las apps. Para casos de uso más avanzados, como la correcta solución de detenciones del trabajo, debes aprender sobre los subprocesos y la concurrencia de WorkManager.
Hay cuatro tipos de primitivas de trabajo diferentes que proporciona WorkManager:
Worker
es la implementación más simple y la que se mostró en las secciones anteriores. WorkManager la ejecuta automáticamente en un subproceso, en segundo plano (que puedes anular). Obtén más información sobre los subprocesos de las instancias deWorker
en Cómo ejecutar subprocesos en Worker.CoroutineWorker
es la implementación recomendada para usuarios de Kotlin. Las instanciasCoroutineWorker
exponen una función de suspensión para el trabajo en segundo plano. De forma predeterminada, ejecutan unDispatcher
predeterminado, que puedes personalizar. Obtén más información sobre los subprocesos de las instancias deCoroutineWorker
en Cómo ejecutar subprocesos en CoroutineWorker.RxWorker
es la implementación recomendada para usuarios de RxJava. Debes usar RxWorkers si se modela una gran cantidad de tu código asíncrono existente en RxJava. Al igual que con todos los conceptos de RxJava, puedes elegir la estrategia de subprocesos que prefieras. Obtén más información sobre los subprocesos de las instancias deRxWorker
en Cómo ejecutar subprocesos en RxWorker.ListenableWorker
es la clase base paraWorker
,CoroutineWorker
yRxWorker
. Está destinado a los desarrolladores de Java que tienen que interactuar con API asincrónicas basadas en devoluciones de llamada comoFusedLocationProviderClient
y que no utilizan RxJava. Obtén más información sobre los subprocesos de las instancias deListenableWorker
en Cómo ejecutar subprocesos en ListenableWorker.