Ho un AsyncTask in cui mostro un ProgressDialog nel OnPreExecute schiena, e nascondere di nuovo in OnPostExecute, qualcosa comeAnnulla AsyncTask quando l'utente preme il pulsante
final class UploadTask extends AsyncTask {
ProgressDialog dialog = new ProgressDialog(...);
protected onPreExecute() {
dialog.show();
}
protected onPostExecute() {
dialog.hide();
}
};
La finestra di dialogo è annullabile e anzi va via quando ho premere il pulsante Annulla durante l'esecuzione di AsyncTask.
In questo caso, vorrei eseguire del codice per annullare anche AsyncTask (al momento, anche se ProgressDialog non funziona, AsyncTask continua a funzionare e alla fine viene completato). Ho provato derivante mia classe da ProgressDialog e poi fare
setOnDismissListener(new OnDismissListener() {
@Override public void onDismiss(DialogInterface d) {
/* do something */
}
};
(o qualcosa di simile con un OnCancelListener), ma questo semplicemente non viene mai chiamato.
Qualche idea? Ho solo bisogno di un meccanismo per l'utente per cancellare un AsyncTask in esecuzione mentre è visualizzato un ProgressDialog.
un esempio per l'annullamento di un AsyncTask http : //www.quicktips.in/correct-way-to-cancel-an-asynctask-in-android/ –