Développer sur Android
Android Lab Test
www.AndroidLabTest.com
Facebook
Par Bruno Delb
www.youtube.com/androidlabtest
www.twitter.com/brunodelb | www.facebook.com/brunodelb | blog.brunodelb.com
www.facebook.com/Androidlabtest
Youtube
Siteofficiel
Leçon : Les threads
Les threads
• Dans cette leçon, vous allez apprendre à lancer des
threads.
• Pour cela, vous allez utiliser Thread.
Les threads
• Au cours d’un thread, pour s’assurer que l’interface utilisateur ne
soit pas figée, vous devez appeler un handler, qui lui pourra accéder
à l’interface utilisateur.
final static int HANDLER_RUNNING = 0;
final static int HANDLER_END = 1;
Handler handler;
handler = new Handler(){
public void handleMessage(Message message) {
switch(message.what) {
case HANDLER_RUNNING: String loop = (String)message.obj; break;
case HANDLER_END: break;
}
}
};
Les threads
• En cours d’exécution du thread, le thread crée un message de handler avec la méthode
obtainMessge() puis l’envoie avec la méthode sendMessage.
• A la fin du thread, le thread envoie un message sans paramètre avec la méthode
sendEmptyMessage().
Thread thread;
thread = new Thread() {
public void run() {
try {
for (int i = 0; i < 10; i++) {
handler.sendMessage (handler.obtainMessage (HANDLER_RUNNING, "" + i));
Thread.sleep(1000);
}
} catch (InterruptedException e) {}
handler.sendEmptyMessage(HANDLER_END);
};
};
thread.start();
Layout main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
Fichier Main.javapublic class Main extends Activity {
Thread thread;
Handler handler;
final static int HANDLER_RUNNING = 0;
final static int HANDLER_END = 1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
handler = new Handler(){
public void handleMessage(Message message) {
switch(message.what) {
case HANDLER_RUNNING:
String loop = (String)message.obj;
break;
case HANDLER_END:
Toast.makeText (Main.this, "Thread terminé", 5000).show();
break;
}
}
};
Fichier Main.java
thread = new Thread() {
public void run() {
try {
for (int i = 0; i < 10; i++) {
handler.sendMessage (handler.obtainMessage (HANDLER_RUNNING, "" + i));
Thread.sleep(1000);
}
} catch (InterruptedException e){
}
handler.sendEmptyMessage(HANDLER_END);
};
};
thread.start();
}
}
Testez sur votre mobile
System_Thread
Retrouvez-moi sur ma chaîne AndroidLabTest …
Sur ma chaîne Youtube
https://www.youtube.com/user/mobiledevlabtest
Qui suis-je ?
Bruno Delb,
auteur du 1er livre francophone de développement d’application Java sur mobile (2002),
développeur d’applications mobiles & sociales,
parlez-moi de vos projets.
Et bien sûr sur mon site Web :
http://blog.brunodelb.com

Android Lab Test : Les threads (français)

  • 1.
    Développer sur Android AndroidLab Test www.AndroidLabTest.com Facebook Par Bruno Delb www.youtube.com/androidlabtest www.twitter.com/brunodelb | www.facebook.com/brunodelb | blog.brunodelb.com www.facebook.com/Androidlabtest Youtube Siteofficiel Leçon : Les threads
  • 2.
    Les threads • Danscette leçon, vous allez apprendre à lancer des threads. • Pour cela, vous allez utiliser Thread.
  • 3.
    Les threads • Aucours d’un thread, pour s’assurer que l’interface utilisateur ne soit pas figée, vous devez appeler un handler, qui lui pourra accéder à l’interface utilisateur. final static int HANDLER_RUNNING = 0; final static int HANDLER_END = 1; Handler handler; handler = new Handler(){ public void handleMessage(Message message) { switch(message.what) { case HANDLER_RUNNING: String loop = (String)message.obj; break; case HANDLER_END: break; } } };
  • 4.
    Les threads • Encours d’exécution du thread, le thread crée un message de handler avec la méthode obtainMessge() puis l’envoie avec la méthode sendMessage. • A la fin du thread, le thread envoie un message sans paramètre avec la méthode sendEmptyMessage(). Thread thread; thread = new Thread() { public void run() { try { for (int i = 0; i < 10; i++) { handler.sendMessage (handler.obtainMessage (HANDLER_RUNNING, "" + i)); Thread.sleep(1000); } } catch (InterruptedException e) {} handler.sendEmptyMessage(HANDLER_END); }; }; thread.start();
  • 5.
    Layout main.xml <?xml version="1.0"encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> </LinearLayout>
  • 6.
    Fichier Main.javapublic classMain extends Activity { Thread thread; Handler handler; final static int HANDLER_RUNNING = 0; final static int HANDLER_END = 1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); handler = new Handler(){ public void handleMessage(Message message) { switch(message.what) { case HANDLER_RUNNING: String loop = (String)message.obj; break; case HANDLER_END: Toast.makeText (Main.this, "Thread terminé", 5000).show(); break; } } };
  • 7.
    Fichier Main.java thread =new Thread() { public void run() { try { for (int i = 0; i < 10; i++) { handler.sendMessage (handler.obtainMessage (HANDLER_RUNNING, "" + i)); Thread.sleep(1000); } } catch (InterruptedException e){ } handler.sendEmptyMessage(HANDLER_END); }; }; thread.start(); } }
  • 8.
    Testez sur votremobile System_Thread
  • 9.
    Retrouvez-moi sur machaîne AndroidLabTest … Sur ma chaîne Youtube https://www.youtube.com/user/mobiledevlabtest Qui suis-je ? Bruno Delb, auteur du 1er livre francophone de développement d’application Java sur mobile (2002), développeur d’applications mobiles & sociales, parlez-moi de vos projets. Et bien sûr sur mon site Web : http://blog.brunodelb.com