Bonjour,
Je m'adresse à vous car sinon ma tête va exploser et mon ordinateur avec
Dans mon application, j'ai un compte à rebours qui se trouve un thread, de ce thread j'envoie le temps restant grâce à un Handler :
Malheureusement, lorsque je rentre dans le Handler, la variable 'ttimer' est à "0" alors que j'ai initialisé le timer à 20 sec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 handler = new Handler() { public void handleMessage(Message msg) { Log.i("mode1", "Je recois un message depuis le thread : timerUpdate"); ttimer = msg.obj.toString(); txtTimer.setText(ttimer); if(ttimer.equals("0")) { Log.i("mode1", "Bon le timer est à 0 donc on affiche la question suivante"); mode1(); } } };
Ce qui fait faire une boucle à mon application en lançant mode1() jusqu'à ce que l'application plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 new Thread(new Runnable() { @Override public void run() { Looper.prepare(); counter = new Compteur(20000, 1000); // On démarre le compteur counter.onTick(1000); counter.start(); Looper.loop(); } }).start();
J'ai testé en mettant des variables de contrôles pour essayé de pas rentrer dans la condition .equals("0") directement après la création du compteur, mais rien à faire...
Comment pourrais je faire pour que quand mon compteur arrive à 0 je rentre dans une fonction ?
Et autre question, comment faire pour envoyer à mon thread d'arrêter le compteur (fonction cancel()) quand je clique sur un button ?
Merci d'avance de vos réponses.
Cordialement, Maxime
Partager