onPostExecute()的"在UI线程上运行"究竟意味着什么?

Har*_*elm 11 android android-asynctask android-activity

考虑在Activity中启动的AsyncTask.如果活动暂停或销毁会发生什么?onPostExecute()会运行吗?如果是,将使用什么UI线程?

就是想.

提前谢谢了.

waq*_*lam 11

UI线程在应用程序的整个可见生命周期中都可用,这可能跨越多个活动的组合.

您在视图中更改的任何内容都必须在UI线程上执行,而AsyncTask的onPostExecute通过执行UI线程内部的指令来反映相同的逻辑.

您可以使用自己的runOnUiThreadThread对Views进行更改.但由于AsyncTask具有onPostExecute方法(也可以在UI线程上运行),因此您在逻辑上不需要在那里使用runOnUiThread.


更新

关于你的问题:是的,onPostExecute仍将被调用(因为它由一个单独的线程调用),即使你的活动被销毁,如果该方法将操纵视图,你只会得到强制关闭错误,因为你的活动参考不可用了.

  • 他的问题不同,请再读一遍 (2认同)