标签: android concurrency android-asynctask onpause
我遇到了我的活动暂停的情况,并且从onPause()方法我取消了AsyncTask。但是,我的日志按时间顺序显示以下事件:
onPause()
AsyncTask
OnPause
cancel(false)
true
onPostExecute
有没有人见过这个? LogCat消息是否保证以准确的顺序显示?
答案 0 :(得分:2)
据我所见,LogCat消息的顺序正确无误。
LogCat
问题可能是,您的AsyncTask无法取消。在Cancel()上调用AsyncTask并非保证取消它的方式。您可以将参数boolean mayInterruptIfRunning用于true。然而,即使将其设置为true,它也从未对我有用。
Cancel()
boolean mayInterruptIfRunning
如果AsyncTask被取消,您可以签入onCancelled()方法。如果控件达到此方法,则表示已取消 在this和this问题中查看答案。
onCancelled()