在异步任务运行时,我正在显示一个可取消的进度对话框。当我按下“后退”按钮时,我希望两个对话框都消失,但也希望取消正在运行的异步任务。问题是:异步任务不知道对话框实例,所以在异步任务取消后我不能取消对话框。
目前,它只是取消后,我按后退按钮两次。
发布于 2014-04-15 14:18:59
对话框有一个onDismissed
回调,使用它来终止异步任务。
发布于 2014-04-15 14:19:20
您可以在cancel上使用ProgressDialog回调:
this.dialog = new ProgressDialog(context);
this.dialog.setMessage("Loading...");
this.dialog.setCancelable(true);
this.dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
@Override
public void onCancel(DialogInterface dialog)
{
// cancel AsyncTask
cancel(false);
}
});
https://stackoverflow.com/questions/23086387
复制相似问题