java - job - ScheduledExecutorService o ScheduledThreadPoolExecutor
java task example (3)
Esto es lo mismo, ScheduledThreadPoolExecutor
es una implementación de ScheduledExecutorService
Estoy construyendo una aplicación de Android que periódicamente tiene que hacer algo en un servicio. Y descubrí que usar ScheduledThreadPoolExecutor
y ScheduledExecutorService
es preferible a Timer
.
¿Alguien puede explicar la diferencia entre ScheduledExecutorService
y ScheduledThreadPoolExecutor
y cuál es más adecuado para Android?
Actualizar
Acabo de encontrar este artículo y esta publicación explica la diferencia entre varias formas de implementar tareas periódicas periódicas. En mi caso, ScheduledThreadPoolExecutor
y AlarmManager
es más adecuado.
Crear ScheduledThreadPoolExecutor usando ejecutores
también puedes mirar este
http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html
si desea usarlo periódicamente, debe usar este método
scheduleAtFixedRate (Runnable, long initialDelay, long period, TimeUnit timeunit)
ScheduledExecutorService
es una interfaz (un contrato) y ScheduledThreadPoolExecutor
implementa esa interfaz.
Como no puede crear una instancia directa de una interfaz, debe usar la implementación a través de instanciar ScheduledThreadPoolExecutor
directamente oa través de un método de fábrica como java.util.concurrent.Executors
que devuelve una instancia de ScheduledThreadPoolExecutor
.
p.ej
ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture
Eche un vistazo al uso del servicio del ejecutor programado para Andriod