Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 15
Utilisation des threads 169
setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
new ArrayList()));
new AddStringTask().execute();
}
class AddStringTask extends AsyncTask {
@Override
protected Void doInBackground(Void... inutilise) {
for (String item : items) {
publishProgress(item);
SystemClock.sleep(200);
}
return(null);
}
@Override
protected void onProgressUpdate(String... item) {
((ArrayAdapter)getListAdapter()).add(item[0]);
}
@Override
protected void onPostExecute(Void inutilise) {
Toast
.makeText(AsyncDemo.this, "Fini !", Toast.LENGTH_SHORT)
.show();
}
}
}
Il s’agit d’une autre variante de la liste de mots lorem ipsum qui a déjà été souvent utilisée
dans ce livre. Cette fois-ci, au lieu de simplement fournir la liste à un ArrayAdapter, on
simule la création de ces mots dans un thread en arrière-plan à l’aide de la classe
AddStringTask, notre implémentation d’AsyncTask.
Les sections qui suivent passent en revue les différentes parties de ce code.
Déclaration d’AddStringTask
class AddStringTask extends AsyncTask {
On utilise ici la généricité pour configurer les types de données spécifiques dont nous
aurons besoin dans AddStringTask :
● Nous n’avons besoin d’aucune information de configuration ; par conséquent, le
premier type est Void.
● Nous voulons passer à onProgressUpdate() chaque chaîne "produite" par notre tâche
en arrière-plan, afin de pouvoir l’ajouter à la liste. Le second type est donc String.
● Nous ne renvoyons pas de résultat à proprement parler (hormis les mises à jour) ; par
conséquent, le troisième type est Void.
Livre Android.book Page 169 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 15
Utilisation des threads 169
setListAdapter(new ArrayAdapter
android.R.layout.simple_list_item_1,
new ArrayList()));
new AddStringTask().execute();
}
class AddStringTask extends AsyncTask
@Override
protected Void doInBackground(Void... inutilise) {
for (String item : items) {
publishProgress(item);
SystemClock.sleep(200);
}
return(null);
}
@Override
protected void onProgressUpdate(String... item) {
((ArrayAdapter)getListAdapter()).add(item[0]);
}
@Override
protected void onPostExecute(Void inutilise) {
Toast
.makeText(AsyncDemo.this, "Fini !", Toast.LENGTH_SHORT)
.show();
}
}
}
Il s’agit d’une autre variante de la liste de mots lorem ipsum qui a déjà été souvent utilisée
dans ce livre. Cette fois-ci, au lieu de simplement fournir la liste à un ArrayAdapter, on
simule la création de ces mots dans un thread en arrière-plan à l’aide de la classe
AddStringTask, notre implémentation d’AsyncTask.
Les sections qui suivent passent en revue les différentes parties de ce code.
Déclaration d’AddStringTask
class AddStringTask extends AsyncTask
On utilise ici la généricité pour configurer les types de données spécifiques dont nous
aurons besoin dans AddStringTask :
● Nous n’avons besoin d’aucune information de configuration ; par conséquent, le
premier type est Void.
● Nous voulons passer à onProgressUpdate() chaque chaîne "produite" par notre tâche
en arrière-plan, afin de pouvoir l’ajouter à la liste. Le second type est donc String.
● Nous ne renvoyons pas de résultat à proprement parler (hormis les mises à jour) ; par
conséquent, le troisième type est Void.
Livre Android.book Page 169 Dimanche, 8. novembre 2009 12:23 12
