Cómo ejecutar subprocesos en WorkManager

En las secciones anteriores, mencionamos que WorkManager realiza trabajos en segundo plano de forma asíncrona en tu nombre. La implementación básica aborda las demandas de la mayoría de las apps. Para casos prácticos más avanzados, como el manejo correcto de la detención del trabajo, debes aprender acerca de los subprocesos y la concurrencia en WorkManager.

Hay cuatro tipos de primitivas de trabajo diferentes proporcionadas por WorkManager:

  • Worker es la implementación más simple y la que viste en secciones anteriores. WorkManager lo ejecuta automáticamente en un subproceso en segundo plano (que puedes anular). Obtén más información acerca de los subprocesos de Worker en Cómo ejecutar subprocesos en Worker.
  • CoroutineWorker es la implementación recomendada para los usuarios de Kotlin. CoroutineWorker expone una función de suspensión para el trabajo en segundo plano. De forma predeterminada, ejecutan un Dispatcher predeterminado, que puedes personalizar. Obtén más información acerca de los subprocesos de CoroutineWorker en Cómo ejecutar subprocesos en CoroutineWorker.
  • RxWorker es la implementación recomendada para los usuarios de RxJava2. Debes usar RxWorkers si una gran cantidad de tu código asíncrono existente se modela en RxJava. Al igual que con todos los conceptos de RxJava2, puedes elegir la estrategia de subprocesos que prefieras. Obtén más información acerca de los subprocesos de RxWorker en Cómo ejecutar subprocesos en RxWorker.
  • ListenableWorker es la clase base de Worker, CoroutineWorker y RxWorker. Está destinado a los desarrolladores de Java que tienen que interactuar con API asincrónicas basadas en la devolución de llamada como FusedLocationProviderClient y que no utilizan RxJava2. Obtén más información acerca de los subprocesos de ListenableWorker en Cómo ejecutar subprocesos en ListenableWorker.