Saltar al contenido

Ejecutar tareas cada segundo usando la API de Work Manager

Ten en cuenta que en la informática un error casi siempere suele tener más de una soluciones, no obstante enseñaremos lo más óptimo y eficiente.

Solución:

No funciona porque el intervalo mínimo entre dos solicitudes de trabajo periódicas es de 15 minutos, definido por MIN_PERIODIC_INTERVAL_MILLIS.

Basado en la documentación:

Crea un PeriodicWorkRequest para ejecutarse periódicamente una vez cada período de intervalo. Se garantiza que PeriodicWorkRequest se ejecutará exactamente una vez durante este intervalo. El intervaloMillis debe ser mayor o igual que PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS. Puede ejecutarse inmediatamente, al final del período o en cualquier momento intermedio, siempre que se cumplan las demás condiciones en ese momento.

Te recomendaría evitar programar el trabajo con tanta frecuencia. Esto terminará consumiendo más recursos y eventualmente afectará la duración de la batería.

WorkManager no está diseñado para ejecutar tareas cada segundo, ya que tiene dos opciones para crear una solicitud de trabajo que es y

  • PeriodicWorkRequest – ejecuta una tarea repetida cada 15 minutos, incluso si cambiamos el intervalo de tiempo a <15 minutos, por defecto se ejecutará solo durante 15 minutos.
  • OneTimeWorkRequest – se ejecuta una vez

WorkManager pondrá en cola las solicitudes de trabajo y llamará a las clases de trabajadores respectivas para ejecutar la tarea donde cada clase de trabajador anula doWork() donde se define la tarea real.

Este método se ejecuta en segundo plano y se ejecuta durante 10 minutos, después de lo cual el trabajador se detiene.

Por lo tanto, si desea programar tareas que se ejecutan cada segundo, mejor ejecute el servicio en primer plano o si tiene tareas en ejecución de corta duración.

Si desea ejecutar tareas en segundo plano durante períodos más largos, la mejor práctica es evitarlo.

Te mostramos las comentarios y valoraciones de los lectores

Eres capaz de añadir valor a nuestra información contribuyendo tu veteranía en los comentarios.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *