progressDialog dans AsyncTask
J'essaie d'afficher une coutume progressdialog lors du chargement des flux rss à partir d'un serveur http, j'ai fait une recherche difficile, mais rien ne m'a aidé pour ce faire, la seule chose que je sais, c'est que la solution doit utiliser AsyncTask, mais je suis confus sur les paramètres à transmettre à cette AsyncTask.
Voici mon activité :
import java.util.ArrayList;
import java.util.List;
import com.cyberesa.info.BaseFeedParser;
import com.cyberesa.info.Message;
import com.cyberesa.info.MessageListAdapter;
import com.cyberesa.info.R;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class Soirees extends ListActivity {
private List<Message> messages;
private TextView tvSorties;
private MyProgressDialog dialog;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.sorties);
tvSorties=(TextView)findViewById(R.id.TVTitle);
tvSorties.setText("Programme des soirées");
loadFeed();
}
private void loadFeed(){
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
List<Message> titles = new ArrayList<Message>(messages.size());
for (Message msg : messages){
titles.add(msg);
}
MessageListAdapter adapter = new MessageListAdapter(this,titles);
this.setListAdapter(adapter);
adapter.notifyDataSetChanged();
} catch (Throwable t){
Log.e("ImageLoader",t.getMessage(),t);
}
}
}
Pouvez-vous s'il vous plaît aidez-moi d'ajouter AsyncTask pour cela ?
Merci,
De houssen
Vous devez vous connecter pour publier un commentaire.
Fixe en déplaçant le point de vue des modificateurs pour onPostExecute donc le code fixe est :
@Vladimir, merci de votre code a été très utile.
AsyncTask est très utile!
Il y A quelques jours j'ai trouvé une très belle solution de ce problème. Lire à ce sujet ici. En deux mots Mike créé un AsyncTaskManager qui intervient dans ProgressDialog et AsyncTask. Il est très facile à utiliser cette solution. Vous avez juste besoin d'inclure dans votre projet de plusieurs interfaces, et plusieurs classes et dans votre activité d'écrire du code simple et nest votre nouveau AsyncTask de BaseTask. J'ai également vous conseiller de lire les commentaires car il y a quelques conseils utiles.
Il a été quelques années depuis que cette question a été posée (et depuis que quelqu'un a posté une réponse). Depuis, ProgressDialog était dépréciée de l'API de niveau O, selon Android est la documentation officielle. en tant Que tel, vous pourriez envisager d'utiliser une ligne de la barre de progression au lieu d'un ProgressDialog que la documentation auteurs suggèrent.
Ne sais pas quel paramètre dois-je utiliser?
Beaucoup de Développeurs, y compris difficile au début de l'écriture d'un AsyncTask en raison de l'ambiguïté des paramètres. La grande raison, c'est essayer de mémoriser les paramètres utilisés dans l'AsyncTask. La clé est Ne mémorise pas. Si vous pouvez visualiser ce que votre tâche vraiment besoin de le faire en écrivant les AsyncTask avec la signature correcte serait un morceau de gâteau.
Qu'est ce qu'un AsyncTask?
AsyncTask sont en tâche de fond qui exécuter dans le thread d'arrière-plan. Il faut une Entrée, effectue des Progrès et donne en Sortie.
Viens de comprendre ce que votre Entrée, le Progrès et la Sortie et vous serez bon d'aller.
Par exemple
Comment pouvez-Vous écrire cela dans un code?
Comment allez-vous exécuter cette Tâche dans Votre Activité?
Cette question a déjà été résolue et la plupart des réponses ici sont corrects, mais ils ne permettent pas de résoudre un problème majeur avec les modifications de configuration. Jetez un oeil à cet article https://androidresearch.wordpress.com/2013/05/10/dealing-with-asynctask-and-screen-orientation/ si vous souhaitez écrire un async tâche dans une meilleure façon.