ScheduledExecutorService o ScheduledThreadPoolExecutor
Estoy construyendo una aplicación para Android que tiene que hacer algo periódicamente en un servicio. Y encontré que usar ScheduledThreadPoolExecutor
y ScheduledExecutorService
es preferible a Timer
.
¿Puede alguien explicar la diferencia entre ScheduledExecutorService
y ScheduledThreadPoolExecutor
y cuál es más adecuado para Android?
- R.menu no se puede resolver
- Android ImageButton no muestra la imagen, aunque es visible en la vista previa de Designer
- Android: cómo acceder a la tabla de contactos de SIM con el SDK?
- No se puede ejecutar un AlertDialog en un método doInbackground ()
- ¿Cómo llamar a un servicio web RESTful de Android?
Actualizar
Acabo de encontrar este artículo y este post explican la diferencia entre varias formas de implementar la repetición de tareas periódicas. En mi caso, ScheduledThreadPoolExecutor
y AlarmManager
son más adecuados.
- ¿Qué optimizaciones puedo esperar de Dalvik y la cadena de herramientas de Android?
- Error de Crashlytics durante la compilación - no podría leer el build_id como una cadena de valor
- Obtención de la API de Preferencias en Android y PC
- OnSaveInstanceState no está siendo llamado en Fragment
- MediaRecorder start () falla si se llama demasiado rápido
- ¿No consigues el archivo a través de FileInputStream?
- Alineación derecha e izquierda con lineal o relativelayout con texto truncado?
- Gestión de la sesión de inicio de sesión de facebook sdk en android
ScheduledExecutorService
es una interfaz (un contrato) y ScheduledThreadPoolExecutor
implementa esa interfaz.
Dado que no puede instanciar directamente una interfaz, debe utilizar la implementación mediante la instancia de ScheduledThreadPoolExecutor
directamente oa través de métodos 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
Echa un vistazo al uso programado del servicio de Executor para Andriod
Esto es lo mismo, ScheduledThreadPoolExecutor
es una implementación de ScheduledExecutorService
Creación de ScheduledThreadPoolExecutor con los ejecutores
Usted puede también mirar éste
http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html
Si desea utilizarlo periódicamente, debe utilizar este método
ScheduleAtFixedRate (Runnable, long initialDelay, long period, TimeUnit timeunit)