Est-ce la meilleure façon de montrer le contenu?
Question
Je suis relativement nouveau dans le monde d'Android et le modèle de l'interface utilisateur / fil est toujours source de confusion.
Voici ce que je suis en train de faire:
Charger des données à partir du Web Manipulez-les Montre leur Afficher un AlertDialog s'il y a un problème
Je fais actuellement comme ça, mais je ne suis pas sûr que l'utilisation de nombreux fil comme ça est la meilleure façon de le faire.
A l'intérieur du onCreate ()
final ProgressDialog pd = ProgressDialog.show(this, "", loadingText, true);
final AlertDialog.Builder b = new AlertDialog.Builder(this);
new Thread(new Runnable() {
@Override
public void run() {
try {
loadResorts();
} catch (ResortsRetrievalException e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
b.setMessage(R.string.resorts_retrieval_error)
.show();
}
});
}
pd.dismiss();
}
}).start();
Et mes loadResorts se termine avec la méthode
final BaseAdapter a = new ResortAdapter(this, R.layout.resort_item, resorts);
runOnUiThread(new Runnable() {
@Override
public void run() {
resortsList.setAdapter(a);
}
});
J'ai un fil et deux appels de runOnUiThread pour cela. Je pense qu'il pourrait y avoir une meilleure solution sans avoir à faire face à ces discussions. Ai-je raison?
Merci
La solution
Utilisez AsyncTask - il a été créé pour ce genre de scénarios: exécution d'une tâche de fond ou d'un processus (long), en mettant à jour encore l'interface utilisateur de manière correcte (sur EDT).