Bonjour,
Je ne maitrise pas encore tout à fait les Thread et processus, mais sur mon appli android, je voudrais faire un décompte de 10..9..8.. jusqu'a 0, et à zéro, j'effectue une opération.
Pour cela, je souhaite créer un Thread qui tourne derrière le Thread UI et qui change un textview toute les secondes (le décompte).
J'ai créé une classe qui étend Thread dans un autre fichier que mon activity, et dans mon activity, j'ai créé un Handler qui reçoit le décompte du Thread pour mettre à jour la vue.

Mon thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class ThreadAutoStop extends Thread {
 
	// Bundle key
	public String MSG_KEY = "mykey";
 
	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
 
		int cpt = 10;
 
		while(cpt<=0){
 
			Message msg = SlotMachine.mHandler.obtainMessage();
 
			Bundle bundle = new Bundle();
			bundle.putString(MSG_KEY,str);
			msg.setData(bundle);
 
			msg.sendToTarget();
 
 
			// sleep a little while (1 second) and increment counter
			Thread.sleep(1000);
 
			cpt--;
		}
	}
}
Mon handler dans mon activity :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public Handler mHandler = new Handler(){
 
			@Override
			public void handleMessage(Message msg) {
				// TODO Auto-generated method stub
				super.handleMessage(msg);
 
				TextView tv = (TextView) findViewById(R.id.tvTime);
				tv.setText(msg.getData().getString(ThreadAutoStop.MSG_KEY));
 
			}
 
		};
Le problème est que dans mon ma classe thread, le SlotMachine.mHandler est souligné en rouge en me demandant de changer le Handler en static. Si je change le handler en static, le findViewById(R.id.tvTime) dans le handler est souligné en rouge en me disant que c'est pas possible que le handler soit en static.
Le chien se mort la queue.
Merci pour votre aide =)