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