我正在运行AsyncTask。如果应用程序已停止(电话,应用程序切换等),我的理解是永远不会调用onPostExecute()。因此,只要使用 cancel(true)取消AsyncTask,就会通知正在运行的任务取消。我不介意在 doInBackground()中定期检查 isCancelled(),但我担心的是 publishProgress()调用遍布doInBackground。我的理解是 onProgressUpdate()在主UI线程上运行。
这是否意味着任何对 publishProgress()的调用都会在应用程序停止时崩溃?或者只是在 onProgressUpdate()中的任何UI更新,当应用程序停止时会导致崩溃。
我问的原因是因为我想知道我是否必须通过检查 isCancelled()来验证每个 publishProgress()来电,还是我可以在实际尝试更新任何UI组件之前,请在 onProgressUpdate()中检查一次。
答案 0 :(得分:2)
Android文档声明:
如果任务已被取消,则不会调用onProgressUpdate(Progress ...)。 developer.android.com/...AsyncTask#publishProgress