Timertask ou Gestionnaire de

Disons que je veux effectuer une action toutes les 10 secondes et il n'a pas nécessairement besoin de mettre à jour la vue.

La question est: est-il mieux (je veux dire plus efficiente et plus efficace) pour utiliser la minuterie avec timertask comme ici:

final Handler handler = new Handler();

TimerTask timertask = new TimerTask() {
    @Override
    public void run() {
        handler.post(new Runnable() {
            public void run() {
               <some task>
            }
        });
    }
};
timer = new Timer();
timer.schedule(timertask, 0, 15000);
}

ou tout simplement un gestionnaire avec postdelayed

final Handler handler = new Handler(); 
final Runnable r = new Runnable()
{
    public void run() 
    {
        <some task>
    }
};
handler.postDelayed(r, 15000);

Aussi je vous serais reconnaissant si vous pouviez expliquer lors de l'utilisation de l'approche et pourquoi l'un d'eux est plus efficace que l'autre (si elle ne l'est réellement).

  • J'ai lu de nombreux messages sur les comportements irréguliers de TimerTasks. Mon conseil serait d'orienter clairement d'entre eux et d'utiliser le gestionnaire d' / postDelayed approche.
  • Je préfère le Gestionnaire d'-postDelay de la méthode que vous avez plus de contrôle et de planifier à partir de l'intérieur
  • Ici est une grande source pour Minuteur vs Handler
  • TimerTask est un fond de tâche, de sorte que vous ne pouvez pas mettre à jour l'INTERFACE utilisateur. Juste pour dire...
InformationsquelleAutor keysersoze | 2013-12-02