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. onPostExecute取消AsyncTask
- 3. 取消AsyncTask
- 4. Android AsyncTask取消消息
- 5. JNI和取消AsyncTask
- 6. 如何取消AsyncTask
- 7. 取消使用ProgressDialog的AsyncTask
- 8. HTTPPost失败时取消AsyncTask?
- 9. 取消AsyncTask的问题
- 10. 取消AsyncTask遇到Thread.sleep
- 11. 询问取消的AsyncTask
- 12. 我如何取消AsyncTask
- 13. Android如何在AsyncTask运行过程中停止/取消AsyncTask?
- 14. 取消AsyncTask未运行调用onCancelled?
- 15. 取消asynctask强制不起作用
- 16. 取消没有循环的AsyncTask
- 17. 我的AsyncTask没有被取消android
- 18. 如何使用蛮力取消AsyncTask
- 19. 取消与后退按钮的asynctask
- 20. 已取消AsyncTask挂起新的HttpRequests
- 21. Asynctask status &&取消等效于RxJava2 Observable?
- 22. 从AsyncTask发送的消息
- 23. asynctask读取阻止
- 24. 取消的AsyncTask当用户按下后退按钮
- 25. AsyncTask运行在活动开始失败先前取消
- 26. 用法取消的AsyncTask - 函数调用顺序 -
- 27. 如何在活动结束时取消AsyncTask?
- 28. 如何正确处理Android中的AsyncTask取消?
- 29. 如何取消运行BitmapFactory.decodeFile()的AsyncTask并清理
- 30. 如何取消一个asyncTask当一个滑动标签旋转?
感谢我希望这是事实。 – enifeder 2012-07-24 06:39:26