在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任務。