在Android中,可以通過(guò)調(diào)用AsyncTask的cancel()方法來(lái)取消任務(wù)。以下是正確的步驟:
在AsyncTask類(lèi)中添加一個(gè)boolean類(lèi)型的變量來(lái)表示任務(wù)是否被取消,比如isCancelled。
在AsyncTask的doInBackground()方法中,定期檢查isCancelled變量的值,如果為true則立即返回。
在需要取消任務(wù)的地方,調(diào)用AsyncTask的cancel()方法,并傳入?yún)?shù)true,表示任務(wù)被取消。
在AsyncTask的onCancelled()方法中處理任務(wù)取消的邏輯。
下面是一個(gè)示例代碼:
public class MyAsyncTask extends AsyncTask<Void, Void, Void> {
private boolean isCancelled = false;
@Override
protected Void doInBackground(Void... voids) {
while (!isCancelled) {
// 執(zhí)行任務(wù)
if (isCancelled) {
return null;
}
}
return null;
}
public void cancelTask() {
isCancelled = true;
cancel(true);
}
@Override
protected void onCancelled() {
// 處理任務(wù)取消的邏輯
}
}
在需要取消任務(wù)的地方,可以調(diào)用cancelTask()方法:
MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute();
// 取消任務(wù)
myAsyncTask.cancelTask();
這樣就可以正確取消AsyncTask任務(wù)。