2

我遇到了我的活动被暂停的情况,并且我从onPause()方法中取消了我的AsyncTask. 但是,我的日志按时间顺序显示以下事件:

  1. OnPause
  2. AsyncTask从 取消OnPausecancel(false)返回true指示任务已成功取消。
  3. onPostExecute被调用,尽管合同如果取消它永远不会被调用

有人见过这个吗?LogCat 消息是否保证以准确的顺序呈现?

4

1 回答 1

2

据我所知,LogCat消息的顺序是正确的。

问题可能是,您AsyncTask无法取消。调用不是取消它的保证方式Cancel()AsyncTask您可以使用该参数boolean mayInterruptIfRunning为 true。但是,即使将其设置为 true,它也从未对我有用。

如果 AsyncTask 被取消,您可以检查onCancelled()方法。如果控件到达此方法,则意味着它已被取消。
看看这个这个问题的答案。

于 2012-08-08T06:05:33.073 回答