我有一个AsyncTask,在其中我在onPreExecute中显示一个ProgressDialog,然后在onPostExecute中隐藏它,就像这样:
final class UploadTask extends AsyncTask {
ProgressDialog dialog = new ProgressDialog(...);
protected onPreExecute() {
dialog.show();
}
protected onPostExecute() {
dialog.hide();
}
};
对话框是可取消的,当我在执行AsyncTask期间按下取消按钮时,它确实会消失。
当发生这种情况时,我想运行一些代码来取消AsyncTask(现在,即使ProgressDialog消失了,AsyncTask仍然继续运行并最终完成)。 我尝试从ProgressDialog派生自己的类,然后执行
setOnDismissListener(new OnDismissListener() {
@Override public void onDismiss(DialogInterface d) {
/* do something */
}
};
当我使用AsyncTask并显示一个ProgressDialog时,我需要用户能够取消任务。我使用了(on something similar with an OnCancelListener),但这个方法似乎从未被调用。
有什么想法吗?我只是需要一种机制让用户在ProgressDialog显示的同时取消正在运行的AsyncTask。