0Pricing
Android Academy · Lección

Trabajo periódico y encadenado

Repita y secuencie tareas en segundo plano

Trabajo periódico y encadenado es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

Trabajos periódicos y encadenados

Además de las tareas puntuales, WorkManager puede repetir trabajos según una programación y encadenar varios workers para que se ejecuten en secuencia. Esta lección abarca ambos conceptos.

PeriodicWorkRequest

Para trabajos recurrentes, use PeriodicWorkRequestBuilder y especifique un intervalo de repetición. WorkManager vuelve a ejecutar el worker una vez por intervalo.

val periodic = PeriodicWorkRequestBuilder<SyncWorker>(
    repeatInterval = 1,
    repeatIntervalTimeUnit = TimeUnit.HOURS
).build()

El mínimo de 15 minutos

El intervalo de repetición mínimo es de 15 minutos. Las solicitudes con un intervalo menor se ajustan a 15 minutos. Esto protege la batería; WorkManager no está pensado para temporizaciones segundo a segundo.

El trabajo periódico no es exacto

El intervalo es una referencia, no un temporizador preciso. El sistema puede ejecutar el trabajo más tarde para agrupar tareas y ahorrar energía. No dependa de él para tareas críticas con respecto al tiempo.

Poner en cola un trabajo periódico único

Use enqueueUniquePeriodicWork para no acumular varias copias del mismo trabajo periódico cada vez que se inicia la aplicación.

WorkManager.getInstance(context).enqueueUniquePeriodicWork(
    "daily_sync",
    ExistingPeriodicWorkPolicy.KEEP,
    periodic
)

Qué es el encadenamiento

El encadenamiento ejecuta los workers en un orden definido: el paso B comienza únicamente después de que el paso A se complete correctamente. La salida de uno se convierte en la entrada del siguiente.

beginWith y then

Inicie una cadena con beginWith y añada pasos secuenciales con then. Llame a enqueue para enviar la cadena completa.

WorkManager.getInstance(context)
    .beginWith(compressRequest)
    .then(uploadRequest)
    .then(cleanupRequest)
    .enqueue()

Los datos fluyen por la cadena

Los datos de salida Data de un worker se pasan como entrada al siguiente. Por ejemplo, compressRequest puede devolver una ruta de archivo que uploadRequest lee desde su inputData.

Pasos paralelos en una cadena

Puede ejecutar varios workers en paralelo pasando una lista a beginWith; el siguiente then espera a que todos terminen.

WorkManager.getInstance(context)
    .beginWith(listOf(downloadA, downloadB))
    .then(mergeRequest)
    .enqueue()

Los errores detienen la cadena

Si algún worker devuelve Result.failure(), se cancelan los pasos restantes de la cadena. Sin embargo, un retry() pausa la cadena hasta que ese paso se complete correctamente.

Combinar con restricciones

Cada solicitud de una cadena y cada solicitud periódica puede tener sus propias restricciones. Por ejemplo, solo el paso de subida puede requerir una red sin medición, mientras que la compresión puede ejecutarse en cualquier momento.

Comprobación rápida

Compruebe cuánto ha entendido sobre los trabajos periódicos y encadenados.

Resumen

Ha aprendido sobre los trabajos periódicos y encadenados:

  • PeriodicWorkRequestBuilder repite el trabajo, con un mínimo de 15 minutos y sin exactitud garantizada
  • beginWith().then() encadena workers en secuencia
  • Los datos de salida pasan de un paso al siguiente; las listas se ejecutan en paralelo
  • Un error cancela la cadena; cada paso puede tener sus propias restricciones

Ha terminado el curso de WorkManager.

Preguntas frecuentes

¿La lección «Trabajo periódico y encadenado» es gratis?

Sí — el texto completo de «Trabajo periódico y encadenado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Trabajo periódico y encadenado»?

Repita y secuencie tareas en segundo plano Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Trabajo periódico y encadenado»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cuándo usar WorkManager
  2. Crear un Worker
  3. Restricciones y programación
  4. Trabajo periódico y encadenado
← Volver a Android Academy