Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
168 L’art du développement Android
par exemple). Vous pouvez donc utiliser cette méthode pour supprimer la ProgressBar et
utiliser le travail effectué en arrière-plan pour mettre à jour le contenu d’une liste.
onProgressUpdate() est la quatrième méthode que vous pouvez redéfinir. Si doInBackground() appelle la méthode publishProgress() de la tâche, l’objet ou les objets
passés à cette méthode seront transmis à onProgressUpdate(), mais dans le thread de
l’interface. onProgressUpdate() peut donc alerter l’utilisateur que la tâche en arrièreplan a progressé – en mettant à jour une ProgressBar ou en continuant une animation,
par exemple. Cette méthode reçoit un tableau variable d’éléments du second type
mentionné plus haut, contenant les données publiées par doInBackground() via publishProgress().
Exemple de tâche
Comme on l’a indiqué, l’implémentation d’une classe AsyncTask n’est pas aussi simple
que celle d’une classe Runnable. Cependant, une fois passée la difficulté de la généricité
et des paramètres variables, ce n’est pas si compliqué que cela.
Le projet Threads/Asyncer implémente une ListActivity qui utilise une AsyncTask :
package com.commonsware.android.async;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import java.util.ArrayList;
public class AsyncDemo extends ListActivity {
private static String[] items={"lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer",
"adipiscing", "elit", "morbi",
"vel", "ligula", "vitae",
"arcu", "aliquet", "mollis",
"etiam", "vel", "erat",
"placerat", "ante",
"porttitor", "sodales",
"pellentesque", "augue",
"purus"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Livre Android.book Page 168 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 183/391

Suivant