我正在从我的 UI 线程(在我的 Activity 的 onCreate() 处理程序中)实例化并执行一个 AsyncTask。我保证 Activity 不会由于配置更改而重新启动(例如,它会忽略方向更改)。
在我的 Activity.onCreate() 中:我使用 asynctask.execute(),然后 UI 线程做一些工作,然后在 Activity.onCreate() 结束之前调用 asynctask.get(...) 进行同步。
根据日志,我的 asynctask.onPostExecute() 在 asynctask.get() 返回后被调用了 很长时间。更准确地说,在 Activity.onResume (!) 返回后调用 onPostExecute。(所以它确实被调用了,我的方法定义没问题,我也使用@Override。)
我在某处读到,由于 onPostExecute() 在 UI 线程的处理程序中发布,UI 线程必须为它做好准备——为什么在这种情况下它还没有准备好?我的应用程序从方向更改开始,但由于我在清单中的设置,它不会导致任何配置更改。
是否有任何保证何时会相对于asynctask.get() 调用 onPostExecute() ?