Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos

Cómo hacer que la tarea Async se ejecute repetidamente después de un intervalo de tiempo como Temporizador … En realidad, estoy desarrollando una aplicación que descargará automáticamente todos los últimos mensajes de bienvenida no leídos del servidor y para ello tengo que verificar las actualizaciones del servidor después de algunos arreglos intervalos de tiempo … Sé que se puede hacer fácilmente a través del temporizador, pero quiero usar la tarea asincrónica, que creo que es más eficiente para las aplicaciones de Android.

public void callAsynchronousTask() { final Handler handler = new Handler(); Timer timer = new Timer(); TimerTask doAsynchronousTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { try { PerformBackgroundTask performBackgroundTask = new PerformBackgroundTask(); // PerformBackgroundTask this class is the class that extends AsynchTask performBackgroundTask.execute(); } catch (Exception e) { // TODO Auto-generated catch block } } }); } }; timer.schedule(doAsynchronousTask, 0, 50000); //execute in every 50000 ms } 
  //Every 10000 ms private void doSomethingRepeatedly() { Timer timer = new Timer(); timer.scheduleAtFixedRate( new TimerTask() { public void run() { try{ new SendToServer().execute(); } catch (Exception e) { // TODO: handle exception } } }, 0, 10000); } 

Puedes simplemente un controlador:

 private int m_interval = 5000; // 5 seconds by default, can be changed later private Handle m_handler; @Override protected void onCreate(Bundle bundle) { ... m_handler = new Handler(); } Runnable m_statusChecker = new Runnable() { @Override public void run() { updateStatus(); //this function can change value of m_interval. m_handler.postDelayed(m_statusChecker, m_interval); } } void startRepeatingTask() { m_statusChecker.run(); } void stopRepeatingTask() { m_handler.removeCallback(m_statusChecker); } 

Pero le recomendaría que consulte este marco: http://code.google.com/intl/de-DE/android/c2dm/ Es un enfoque diferente: el servidor notificará al teléfono cuando algo esté listo (por lo tanto, guardando algunas ancho de banda y rendimiento :))

¿No sería más eficiente crear un servicio y progtwigrlo a través de Alarm Manager?