4
A
回答
5
從我所瞭解的任務只運行在doInBackground()
狀態,onPostExecute()
意味着任務已完成且無法取消。
cancel()
嘗試取消執行此任務。如果任務已完成,已被取消或因其他原因無法取消,此嘗試將失敗。如果成功,並且此任務在調用取消時尚未開始,則此任務不應運行。如果任務已經開始,那麼mayInterruptIfRunning
參數確定執行此任務的線程是否應該被中斷以試圖停止任務。
調用此方法將導致在doInBackground(Object[])
返回後在UI線程上調用onCancelled(Object)
。調用此方法可確保從不調用onPostExecute(Object)
。調用此方法後,應該定期從doInBackground(Object[])
中檢查isCancelled()
返回的值,以儘早完成任務。
1
覆蓋onCanceled()
方法,請參閱下面的示例代碼:
private class UpdateTask extends AsyncTask<Void, Void, Void> {
private boolean running = true;
@Override
protected void onCancelled() {
running = false;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
onUpdate();
}
@Override
protected Void doInBackground(Void... params) {
while(running) {
publishProgress();
}
return null;
}
}
+0
你似乎誤解了這個問題。我並沒有問如何使用AsyncTask,而是更多地關注其內部工作。 – enifeder 2012-07-24 06:34:48
相關問題
- 1. 的AsyncTask不取消取消
- 2. 取消AsyncTask
- 3. onPostExecute取消AsyncTask
- 4. 取消的AsyncTask
- 5. asynctask取消onpostexecute
- 6. 取消AsyncTask
- 7. Android AsyncTask取消消息
- 8. 如何取消AsyncTask
- 9. JNI和取消AsyncTask
- 10. 取消所有AsyncTask?
- 11. 取消AsyncTask的問題
- 12. AsyncTask不會收到取消
- 13. 取消的AsyncTask在Android的
- 14. 取消使用ProgressDialog的AsyncTask
- 15. 詢問取消的AsyncTask
- 16. 取消AsyncTask遇到Thread.sleep
- 17. Android - 無法取消AsyncTask
- 18. 無法取消運行AsyncTask
- 19. HTTPPost失敗時取消AsyncTask?
- 20. 我如何取消AsyncTask
- 21. 取消Android中的AsyncTask
- 22. 無法取消與AsyncTask取消按鈕在Android
- 23. Android如何在AsyncTask運行過程中停止/取消AsyncTask?
- 24. 如何取消或停止AsyncTask?
- 25. 我的AsyncTask沒有被取消android
- 26. 已取消AsyncTask掛起新的HttpRequests
- 27. 取消AsyncTask未運行調用onCancelled?
- 28. 取消自己內部的AsyncTask
- 29. 在取消AsyncTask時執行onPostExecute
- 30. 如何取消的AsyncTask在Android
感謝我希望這是事實。 – enifeder 2012-07-24 06:39:26