Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
164 L’art du développement Android
public void run() {
try {
for (int i=0;i<20 && isRunning;i++) {
Thread.sleep(1000);
handler.sendMessage(handler.obtainMessage());
}
}
catch (Throwable t) {
// Termine le thread en arrière–plan
}
}
});
isRunning=true;
background.start();
}
public void onStop() {
super.onStop();
isRunning=false;
}
}
Une partie de la construction de l’activité passe par la création d’une instance de Handler
contenant notre implémentation de handleMessage(). Pour chaque message reçu, nous
nous contentons de faire avancer la barre de progression de 5 points.
Dans la méthode onStart(), nous configurons un thread en arrière-plan. Dans une vraie
application, celui-ci effectuerait une tâche significative mais, ici, nous nous mettons
simplement en pause pendant 1 seconde, nous postons un Message au Handler et nous
répétons ces deux opérations vingt fois. Combiné avec la progression de 5 points de la
position de la ProgressBar, ce traitement fera donc avancer la barre à travers tout l’écran
puisque la valeur maximale par défaut de la barre est 100. Vous pouvez ajuster ce maximum avec la méthode setMax() pour, par exemple, qu’il soit égal au nombre de lignes de
la base de données que vous êtes en train de traiter et avancer de un la position pour
chaque ligne.
Notez que l’on doit ensuite quitter onStart(). C’est un point crucial : la méthode
onStart() est appelée dans le thread qui gère l’interface utilisateur de l’activité afin
qu’elle puisse modifier les widgets et tout ce qui affecte cette interface – la barre de titre,
par exemple. Ceci signifie donc que l’on doit sortir d’onStart(), à la fois pour laisser le
Handler faire son travail et pour qu’Android ne pense pas que notre activité est bloquée.
La Figure 15.1 montre que l’activité se contente d’afficher une barre de progression horizontale.
Livre Android.book Page 164 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
164 L’art du développement Android
public void run() {
try {
for (int i=0;i<20 && isRunning;i++) {
Thread.sleep(1000);
handler.sendMessage(handler.obtainMessage());
}
}
catch (Throwable t) {
// Termine le thread en arrière–plan
}
}
});
isRunning=true;
background.start();
}
public void onStop() {
super.onStop();
isRunning=false;
}
}
Une partie de la construction de l’activité passe par la création d’une instance de Handler
contenant notre implémentation de handleMessage(). Pour chaque message reçu, nous
nous contentons de faire avancer la barre de progression de 5 points.
Dans la méthode onStart(), nous configurons un thread en arrière-plan. Dans une vraie
application, celui-ci effectuerait une tâche significative mais, ici, nous nous mettons
simplement en pause pendant 1 seconde, nous postons un Message au Handler et nous
répétons ces deux opérations vingt fois. Combiné avec la progression de 5 points de la
position de la ProgressBar, ce traitement fera donc avancer la barre à travers tout l’écran
puisque la valeur maximale par défaut de la barre est 100. Vous pouvez ajuster ce maximum avec la méthode setMax() pour, par exemple, qu’il soit égal au nombre de lignes de
la base de données que vous êtes en train de traiter et avancer de un la position pour
chaque ligne.
Notez que l’on doit ensuite quitter onStart(). C’est un point crucial : la méthode
onStart() est appelée dans le thread qui gère l’interface utilisateur de l’activité afin
qu’elle puisse modifier les widgets et tout ce qui affecte cette interface – la barre de titre,
par exemple. Ceci signifie donc que l’on doit sortir d’onStart(), à la fois pour laisser le
Handler faire son travail et pour qu’Android ne pense pas que notre activité est bloquée.
La Figure 15.1 montre que l’activité se contente d’afficher une barre de progression horizontale.
Livre Android.book Page 164 Dimanche, 8. novembre 2009 12:23 12
