考虑在 Activity 中启动的 AsyncTask。如果 Activity 被暂停或销毁会发生什么?onPostExecute() 会运行吗?如果是,将使用哪个 UI 线程?
就是想。
提前谢谢了。
考虑在 Activity 中启动的 AsyncTask。如果 Activity 被暂停或销毁会发生什么?onPostExecute() 会运行吗?如果是,将使用哪个 UI 线程?
就是想。
提前谢谢了。
UI 线程在应用程序的整个可见生命周期中都可用,它可能跨越多个活动的组合。
您在视图中所做的任何更改都必须在 UI 线程上执行,并且AsyncTask的onPostExecute通过在 UI 线程上执行内部指令来反映相同的逻辑。
您可以自己使用runOnUiThreadThread
对视图进行更改。但是由于AsyncTask有onPostExecute方法(它也在 UI 线程上运行),所以你在逻辑上不需要在那里使用runOnUiThread。
更新
关于您的问题:是的,即使您的活动被破坏并且该方法将操纵视图,onPostExecute仍将被调用(因为它由单独的线程调用),您将简单地得到强制关闭错误,因为对您的活动的引用不可用了。
它会onPostExecute()
因为像进程对话框这样的 UI 线程而崩溃。它发生在我身上,我的 Activity 在我的 Asynctask 完成之前销毁。它说“窗口泄漏......”所以,我删除了onPostExecute()
. 没有更多的崩溃..
请记住调用取消函数以避免 onPause 或 onDestroyed 出现异常。