SlideShare ist ein Scribd-Unternehmen logo
1 von 9
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

Weitere ähnliche Inhalte

Andere mochten auch

Le langage Cobol
Le langage CobolLe langage Cobol
Le langage Cobol
Bruno Delb
 

Andere mochten auch (9)

Android Lab Test : Creating a menu context (english)
Android Lab Test : Creating a menu context (english)Android Lab Test : Creating a menu context (english)
Android Lab Test : Creating a menu context (english)
 
Le langage Cobol
Le langage CobolLe langage Cobol
Le langage Cobol
 
Android Lab Test : La synthèse vocale (français)
Android Lab Test : La synthèse vocale (français)Android Lab Test : La synthèse vocale (français)
Android Lab Test : La synthèse vocale (français)
 
Android Lab Test : Using the network with HTTP (english)
Android Lab Test : Using the network with HTTP (english)Android Lab Test : Using the network with HTTP (english)
Android Lab Test : Using the network with HTTP (english)
 
Android Lab Test : Le stockage avec SharedPreferences (français)
Android Lab Test : Le stockage avec SharedPreferences (français)Android Lab Test : Le stockage avec SharedPreferences (français)
Android Lab Test : Le stockage avec SharedPreferences (français)
 
Android Lab Test : La boîte de dialogue oui/non (français)
Android Lab Test : La boîte de dialogue oui/non (français)Android Lab Test : La boîte de dialogue oui/non (français)
Android Lab Test : La boîte de dialogue oui/non (français)
 
Android Lab Test : La liste des fichiers à la racine (français)
Android Lab Test : La liste des fichiers à la racine (français)Android Lab Test : La liste des fichiers à la racine (français)
Android Lab Test : La liste des fichiers à la racine (français)
 
Android Lab Test : The views, the Gallery (english)
Android Lab Test : The views, the Gallery (english)Android Lab Test : The views, the Gallery (english)
Android Lab Test : The views, the Gallery (english)
 
Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)
 

Ähnlich wie Android Lab Test : Les threads (français) (9)

Threads
ThreadsThreads
Threads
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Multithreading
MultithreadingMultithreading
Multithreading
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
java_PAR.pdf
java_PAR.pdfjava_PAR.pdf
java_PAR.pdf
 
08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions
 
Designs Patterns
Designs PatternsDesigns Patterns
Designs Patterns
 
Python
PythonPython
Python
 
Cours java avance avancé thread arraylist
Cours java avance avancé thread arraylistCours java avance avancé thread arraylist
Cours java avance avancé thread arraylist
 

Mehr von Bruno Delb

Mehr von Bruno Delb (17)

Introduction to Swift (tutorial)
Introduction to Swift (tutorial)Introduction to Swift (tutorial)
Introduction to Swift (tutorial)
 
Android Lab Test : Storage of data with SharedPreferences (english)
Android Lab Test : Storage of data with SharedPreferences (english)Android Lab Test : Storage of data with SharedPreferences (english)
Android Lab Test : Storage of data with SharedPreferences (english)
 
Android Lab Test : Managing sounds with SoundPool (english)
Android Lab Test : Managing sounds with SoundPool (english)Android Lab Test : Managing sounds with SoundPool (english)
Android Lab Test : Managing sounds with SoundPool (english)
 
Android Lab Test : Using the text-to-speech (english)
Android Lab Test : Using the text-to-speech (english)Android Lab Test : Using the text-to-speech (english)
Android Lab Test : Using the text-to-speech (english)
 
Android Lab Test : Reading the foot file list (english)
Android Lab Test : Reading the foot file list (english)Android Lab Test : Reading the foot file list (english)
Android Lab Test : Reading the foot file list (english)
 
Android Lab Test : The styles of views (english)
Android Lab Test : The styles of views (english)Android Lab Test : The styles of views (english)
Android Lab Test : The styles of views (english)
 
Android Lab Test : Using the camera preview (english)
Android Lab Test : Using the camera preview (english)Android Lab Test : Using the camera preview (english)
Android Lab Test : Using the camera preview (english)
 
Android Lab Test : Using the WIFI (english)
Android Lab Test : Using the WIFI (english)Android Lab Test : Using the WIFI (english)
Android Lab Test : Using the WIFI (english)
 
Android Lab Test : Reading the SMS-inbox (english)
Android Lab Test : Reading the SMS-inbox (english)Android Lab Test : Reading the SMS-inbox (english)
Android Lab Test : Reading the SMS-inbox (english)
 
Android Lab Test : Ecrire un texte sur le canevas (français)
Android Lab Test : Ecrire un texte sur le canevas (français)Android Lab Test : Ecrire un texte sur le canevas (français)
Android Lab Test : Ecrire un texte sur le canevas (français)
 
Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)
 
Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)
 
Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)
 
Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)
 
Android Lab Test : La gestion du son avec SoundPool (français)
Android Lab Test : La gestion du son avec SoundPool (français)Android Lab Test : La gestion du son avec SoundPool (français)
Android Lab Test : La gestion du son avec SoundPool (français)
 
Android Lab Test : La numérotation avec Intent (français)
Android Lab Test : La numérotation avec Intent (français)Android Lab Test : La numérotation avec Intent (français)
Android Lab Test : La numérotation avec Intent (français)
 
Android Lab Test : Le menu dynamique (français)
Android Lab Test : Le menu dynamique (français)Android Lab Test : Le menu dynamique (français)
Android Lab Test : Le menu dynamique (français)
 

Kürzlich hochgeladen

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 

Kürzlich hochgeladen (20)

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 

Android Lab Test : Les threads (français)

  • 1. 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
  • 2. Les threads • Dans cette leçon, vous allez apprendre à lancer des threads. • Pour cela, vous allez utiliser Thread.
  • 3. 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; } } };
  • 4. 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();
  • 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 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; } } };
  • 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 votre mobile System_Thread
  • 9. 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