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:
Workeres 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 deWorkeren Cómo ejecutar subprocesos en Worker.CoroutineWorkeres la implementación recomendada para usuarios de Kotlin. Las instanciasCoroutineWorkerexponen una función de suspensión para el trabajo en segundo plano. De forma predeterminada, ejecutan unDispatcherpredeterminado, que puedes personalizar. Obtén más información sobre los subprocesos de las instancias deCoroutineWorkeren Cómo ejecutar subprocesos en CoroutineWorker.RxWorkeres 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 deRxWorkeren Cómo ejecutar subprocesos en RxWorker.ListenableWorkeres la clase base paraWorker,CoroutineWorkeryRxWorker. Está destinado a los desarrolladores de Java que tienen que interactuar con API asincrónicas basadas en devoluciones de llamada comoFusedLocationProviderClienty que no utilizan RxJava. Obtén más información sobre los subprocesos de las instancias deListenableWorkeren Cómo ejecutar subprocesos en ListenableWorker.