2017-01-26 1 views
-1

MISE À JOUR: Le code fonctionne seulement que je dint init le textview, mais cette question est répondue donc je ne peux pas l'enlever non plus. Donc, je vais laisser cette question comme il est pour quiconque essaie d'implémenter un Timertask avec handler qui utilise Looper.getMainLooper qui l'attache directement à l'interface utilisateur.Timer task implémentant le gestionnaire

OLD QUERY: Bonjour les gars J'essaie d'implémenter une minuterie qui exécute une tâche qui a un gestionnaire. Je l'utilise pour mettre à jour l'interface utilisateur chaque seconde. Ce est ce que je mets en œuvre:

private void setRepeatingAsyncTask() { 

     handler = new Handler(Looper.getMainLooper()); 
     timer = new Timer(); 

     TimerTask task = new TimerTask() { 
      @Override 
      public void run() { 
       handler.post(new Runnable() { 
        public void run() { 
         try { 
           i++; 
          tview.setText(String.valueOf(i)); 
         } catch (Exception e) { 
          // error, do something 
         } 
        } 
       }); 
      } 
     }; 

     timer.schedule(task, 0, 1000); // interval of one minute 

    } 

quand je fais setRepeatingAsyncTask() sur créer ou ailleurs comme le bouton clicklistner, etc, soit la minuterie ou le gestionnaire ne démarre pas. S'il vous plaît aider nouveau pour Android!

+0

1000 est de 1 sec, pas 1 minute – W4R10CK

+2

@ 1000 est W4R10CK Nope 1 sec, il est en ms PS: Ne pas Occupez-vous du commentaire –

+0

Je dis la même chose. mais le placement d'erreur de ',' – W4R10CK

Répondre

0

J'utilisé Handler pour traiter la tâche chaque 1 sec, utilisant simplement Handler:

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 

      //some task 

      handler.postDelayed(this, 1000); //looping is every 1 secs 
     } 
    }, 0); //initial delay of 0 
+0

J'ai essayé de le faire comme votre chemin, mais il y a un léger retard en mettant à jour l'interface utilisateur que je ne veux pas.Il y a aussi cette nouvelle chose Looper que j'essaie –

+0

Peut-être que le retard est parce que votre interface utilisateur est grande ou la boucle est très rapide – W4R10CK

+2

a eu mon code en cours d'exécution était juste une simple erreur, devrait ai au moins notifié un journal pour mes regrets d'exception c'est tout ce que je peux dire, bdw votre est aussi utile que son simple pour faire des choses simples. merci pour votre temps :) –