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 :

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();
		}
	}
};
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
 
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();
Ce qui fait faire une boucle à mon application en lançant mode1() jusqu'à ce que l'application plante.

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