Android 如何真正取消异步任务?
下载文件时,我有progressDialog,它用于异步任务。在AsyncTask中,我实现了这些方法:Android 如何真正取消异步任务?,android,android-asynctask,Android,Android Asynctask,下载文件时,我有progressDialog,它用于异步任务。在AsyncTask中,我实现了这些方法: @Override protected void onCancelled() { handleOnCancelled(this.result); super.onCancelled(); } @Override protected void onCancelled(String result) { super.onCancelled(result); } 在我的活动中
@Override
protected void onCancelled() {
handleOnCancelled(this.result);
super.onCancelled();
}
@Override
protected void onCancelled(String result) {
super.onCancelled(result);
}
在我的活动中,我正在声明mProgressDialog并将其命名为onCancelListener:
mProgressDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
xml.cancel(true);
}
});
当我按back键时,mProgressDialog关闭,onCancel(上面的方法)被调用,但异步任务仍然在后台运行。如何解决
谢谢您需要反复检查
doInBackground()
方法中的布尔值isCanceled()
。如果此方法返回true,则应立即退出任务正在执行的任何循环或后台工作
请参阅。您需要在
doInBackground()
方法中重复检查布尔值isCanceled()
。如果此方法返回true,则应立即退出任务正在执行的任何循环或后台工作
请参阅。您需要在
doInBackground()
方法中重复检查布尔值isCanceled()
。如果此方法返回true,则应立即退出任务正在执行的任何循环或后台工作
请参阅。您需要在
doInBackground()
方法中重复检查布尔值isCanceled()
。如果此方法返回true,则应立即退出任务正在执行的任何循环或后台工作
请参阅。试试这个
if(myAsyncTask.getStatus().equals(AsyncTask.Status.RUNNING))
{
myAsyncTask.cancel(true);
}
试试这个
if(myAsyncTask.getStatus().equals(AsyncTask.Status.RUNNING))
{
myAsyncTask.cancel(true);
}
试试这个
if(myAsyncTask.getStatus().equals(AsyncTask.Status.RUNNING))
{
myAsyncTask.cancel(true);
}
试试这个
if(myAsyncTask.getStatus().equals(AsyncTask.Status.RUNNING))
{
myAsyncTask.cancel(true);
}
下载时检查异步任务中的isCanceled()
。下载时检查异步任务中的isCanceled()
。下载时检查异步任务中的isCanceled()
。检查isCanceled()
下载时在异步任务中。可能重复:可能重复:可能重复:可能重复: