Mes données sont chargées depuis Internet, donc j'utilise AsynTask(). La méthode execute() permet d'ouvrir d'abord un objet progressDialog, puis de charger les données en arrière-plan. cela fonctionne, cependant, il faut parfois trop de temps pour charger les données, donc je veux annuler le chargement, et voici le problème: quand je clique sur le bouton précédent, la boîte de dialogue se ferme mais après le chargement en arrière-plan, censé faire après le chargement, par exemple commencer une nouvelle intention. est-il possible que je puisse annuler le chargement correctement ???Comment annuler l'exécution d'une méthode lorsque le bouton "Précédent" est cliqué en android
new GridViewAsyncTask().execute();
public class GridViewAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog myDialog;
@Override
protected void onPreExecute() {
// show your dialog here
myDialog = ProgressDialog.show(ScrollingTab.this, "Checking data",
"Please wait...", true, true);
}
@Override
protected Void doInBackground(Void... params) {
// update your DB - it will run in a different thread
loadingData();
return null;
}
@Override
protected void onPostExecute(Void result) {
// hide your dialog here
myDialog.dismiss();
}
http://stackoverflow.com/questions/2735102/ideal-way-to-cancel-an-executing-asynctask ce lien est beaucoup mieux! –