根据文件here
调用此方法将导致在doInBackground(Object [])返回后在UI线程上调用onCancelled(Object)
但是,在我的情况下,在调用cancel方法后立即调用onCancelled(Object)。我的问题:文件错了吗?
答案 0 :(得分:0)
正常执行的AsyncTask
可以处于四种状态:尚未执行,执行,完成和取消。如果任务已完成或已取消,则cancel()
方法不起作用。如果任务正在执行,则doInBackground()
必须在调用onCancelled()
之前完成。但是,如果任务尚未开始执行,则会立即调用onCancelled()
,您将无法执行该任务。
答案 1 :(得分:0)
我遇到了类似的问题。在调用cancel()后,我的任务继续运行。这适用于Android 2.2和2.3。我最终定期检查doInBackground中的isCancelled()。并且行为是相同的,你可以调用cancel(true)或取消(false)。