2011-08-28 103 views
0

是否有可能取消AsyncTask已在doInBackground一行命令執行一個很長的操作,如取消的AsyncTask

@Override 
protected Boolean doInBackground(String... filename) { 
    fetchfile(filename[0]); 
    // ... 
    // ... 
    return ...; 
} 
+0

這取決於'fetchfile'在做什麼。 – skaffman

+0

請點擊這裏:http://developer.android.com/reference/android/os/AsyncTask.html。部分:「取消任務」 –

+0

重複:http://stackoverflow.com/questions/4748964/android-cancel-asynctask-forcefully – derekerdmann

回答

0

您可以AsyncTask.cancel()取消。您可以在適當的地方在fetchFile方法內取消它,您認爲它不會在數據中或在易於回滾的地方引入不一致。

0

在長時間運行的方法中,定期檢查isCanceled,如果爲true,則從函數ASAP快速返回,以便可以關閉異步線程。 你可以從任何線程調用cancel()。