Comment exécuter une tâche Async à plusieurs resockets après des intervalles de temps fixes

Comment faire pour exécuter la tâche Async de façon répétée après un certain intervalle de temps, tout comme Timer … En fait, je développe une application qui télécharge automatiquement toutes les dernières annonces non lues du serveur et pour cela, je dois vérifier intervalles de temps …. Je sais que cela peut être fait facilement par le biais du minuteur, mais je veux utiliser une tâche asynchrone qui, à mon avis, est plus efficace pour les applications 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); } 

    Vous pouvez juste un gestionnaire:

     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); } 

    Mais je vous recommande de vérifier ce cadre: http://code.google.com/intl/de-DE/android/c2dm/ Une approche différente: le serveur notifiera le téléphone lorsque quelque chose est prêt bande passante et performance :))

    Ne serait-il pas plus efficace de créer un service et de le planifier via Alarm Manager?