Bonjour à tous,
J'ai actuellement dans mon application plusieurs Thread qui tourne en plus du Thread d'interface. Pour l'un de ces Thread j'aurais besoin de lui envoyer un message periodiquement , toutes les 15 secondes.
Le thread concerné implémente un looper et un handler afin de gérer les messages qui lui sont envoyés. Il a également accès au Handler du Thread d'UI pour pouvoir retourner des message à l'interface.
Le Thread :
Du coté de l'activité j'ai quelque chose comme celà :
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
31
32
33
34
35
36
37
38 public void run() { Looper.prepare(); this.threadHandler = initHandler(); // Message vers l'UI this.message = this.activityHandler.obtainMessage(); this.message.what = CONNECTED; activityHandler.sendMessage(this.message); // Début de la gestion de message thread Looper.loop(); } private Handler initHandler() { return new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case AUTH : { auth(); break; } case ALIVE : { sendAlive(); break; } } } }; }
Comment puis je simplement soit à l'intérieur du Thread soit depuis l'activité appelé periodiquement le message
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 public void onResume() { super.onResume(); //Lancement du Thread this.thread = new MyThread(activityHandler); // Récupération de l'handler du thread this.threadHandler = this.thread.gethandler(); threadMessage = this.threadHandler.obtainMessage(); threadMessage.what = AUTH; // Envoi d'un message au Thread this.threadHandler.sendMessage(threadMessage); //Appel Periodique .... }?
Code : Sélectionner tout - Visualiser dans une fenêtre à part threadMessage.what = ALIVE;
Merci pour votre aide
Partager