WorkManager en Android: tareas persistentes en segundo plano
Programa reintentos y trabajos diferidos sin bloquear la aplicación.
Programar una sincronización de datos que sobreviva al cierre de la pantalla.
Antes de comenzar
Parte de un proyecto de prueba o de una copia de trabajo de tu aplicación. Revisa versiones, permisos y dependencias en los enlaces oficiales del final: las plataformas Android y los servicios de Google pueden actualizar sus requisitos.
El objetivo de esta guía es aplicar un proceso concreto y comprobar su resultado. Documenta cualquier cambio relevante para poder mantenerlo y, cuando corresponda, medir sus efectos con datos.
Cómo hacerlo
Distingue tareas cortas en pantalla, servicios y…
Distingue tareas cortas en pantalla, servicios y trabajo persistente para elegir WorkManager correctamente.
Añade la dependencia oficial de WorkManager para…
Añade la dependencia oficial de WorkManager para Kotlin y crea un CoroutineWorker.
Implementa doWork con operación idempotente y devuelve…
Implementa doWork con operación idempotente y devuelve success, retry o failure según el resultado.
Declara restricciones como conectividad cuando de verdad…
Declara restricciones como conectividad cuando de verdad sean necesarias.
Encola trabajo único para evitar duplicados y…
Encola trabajo único para evitar duplicados y observa su estado para informar al usuario.
Prueba sin red, interrupciones del proceso y…
Prueba sin red, interrupciones del proceso y varios reintentos; WorkManager no garantiza ejecución en un instante exacto.
class SyncWorker(context: Context, params: WorkerParameters) :
CoroutineWorker(context, params) {
override suspend fun doWork(): Result = try {
// Aquí llama al repositorio para sincronizar.
Result.success()
} catch (e: IOException) {
Result.retry()
}
}Fragmento educativo: adapta las importaciones, clases, dependencias y versiones a tu proyecto. Consulta la documentación oficial antes de integrarlo.
Ejercicio práctico
Encola un trabajo único que intente subir datos de prueba cuando haya conexión y registre el resultado.
No uses WorkManager como un temporizador exacto ni para ejecutar bucles infinitos en segundo plano.
Cómo verificar el resultado
- Completa los pasos anteriores en un entorno de pruebas antes de distribuir cambios.
- Comprueba que la función, configuración o estrategia responde al objetivo planteado.
- Revisa errores, impacto para usuarios y políticas aplicables a tu caso.
- Conserva la evidencia y anota qué deberás revisar cuando cambien las versiones.
Fuentes oficiales para profundizar
Consulta los requisitos y ejemplos vigentes en estas fuentes antes de publicar una implementación.