¿Dónde puedo crear y usar ScheduledThreadPoolExecutor, TimerTask o Handler?

Tengo que hacer que mi lector de RSS Feed verifique el feed cada 10 minutos para los nuevos mensajes, y luego analizarlos si hay nuevos. También necesito actualizar la interfaz de usuario sobre cada minuto.

He leído y escuchado cosas diferentes de varias fuentes. Mi comprensión actual es que puedo utilizar ScheduledThreadPoolExecutor para hacer dos hilos programados, y uno de ellos necesita un Handler para actualizar la interfaz de usuario. No estoy seguro de cuál es el uso más eficiente de estas clases o TimerTask .

También estoy muy inseguro acerca de dónde hacer subclases de estos. Un amigo sugirió extender TimerTask como una clase interna en mi clase FeedParser para hacerlo más sencillo. Sin embargo, para implementarlo de esa manera, tengo que usar el método run() para TimerTask sin TimerTask , lo que significa que no puedo simplemente usar los parámetros que necesito para las funciones que necesitan ejecutarse.

En resumen, ¿cuál es la mejor manera de programar las tareas para esto, y dónde implementar éstos?

Prefiero usar ScheduledThreadPoolExecutor. Generalmente, si entiendo sus requisitos correctamente, todos estos se pueden implementar en su actividad, TimerTask y Handler no son necesarios, vea el código de ejemplo a continuación:

 public class MyActivity extends Activity { private ScheduledExecutorService scheduleTaskExecutor; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); scheduleTaskExecutor= Executors.newScheduledThreadPool(5); // This schedule a task to run every 10 minutes: scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() { public void run() { // Parsing RSS feed: myFeedParser.doSomething(); // If you need update UI, simply do this: runOnUiThread(new Runnable() { public void run() { // update your UI component here. myTextView.setText("refreshed"); } }); } }, 0, 10, TimeUnit.MINUTES); } // end of onCreate() } 

Recuerda terminar / cerrar tu tarea ejecutable correctamente en Activity.onDestroy (), espero que ayude.

  • Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos
  • Android - Cómo detener y detener el temporizador
  • Tema de Android Simple Timer / Timertask
  • Tarea del temporizador VS Uso del administrador de alarmas en el servicio de Android
  • Android: haga una parte del código cada 5 segundos
  • Temporizador La tarea deja de ejecutarse después de un tiempo indefinido en android
  • Obtención de metadatos de SHOUTcast utilizando IcyStreamMeta
  • ¿Cómo se utiliza un TimerTask para ejecutar un hilo?
  • Android Handler para la tarea repetida - se superpone? Temporizador-tarea VS manejador VS alarma-administrador
  • Android: Acceso al elemento de interfaz de usuario desde el subproceso del temporizador
  • TimerTask ya está programado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.