在Android中,可以通过调用AsyncTask的cancel()方法来取消任务。以下是正确的步骤:
在AsyncTask类中添加一个boolean类型的变量来表示任务是否被取消,比如isCancelled。
在AsyncTask的doInBackground()方法中,定期检查isCancelled变量的值,如果为true则立即返回。
在需要取消任务的地方,调用AsyncTask的cancel()方法,并传入参数true,表示任务被取消。
在AsyncTask的onCancelled()方法中处理任务取消的逻辑。
下面是一个示例代码:
public class MyAsyncTask extends AsyncTask<Void, Void, Void> {
private boolean isCancelled = false;
@Override
protected Void doInBackground(Void... voids) {
while (!isCancelled) {
// 执行任务
if (isCancelled) {
return null;
}
}
return null;
}
public void cancelTask() {
isCancelled = true;
cancel(true);
}
@Override
protected void onCancelled() {
// 处理任务取消的逻辑
}
}
在需要取消任务的地方,可以调用cancelTask()方法:
MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute();
// 取消任务
myAsyncTask.cancelTask();
这样就可以正确取消AsyncTask任务。