阅读量:2
在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任务。