其他分享
首页 > 其他分享> > android-部分订单:AsyncTask.get()和onPostExecute()?

android-部分订单:AsyncTask.get()和onPostExecute()?

作者:互联网

我正在从我的UI线程实例化并执行AsyncTask(在
我的Activity的onCreate()处理函数).我保证活动
由于配置更改而不会重新启动(它会忽略方向更改,
例如).

在我的Activity.onCreate()中:我使用asynctask.execute(),然后使用UI
线程完成一些工作,然后在Activity.onCreate()结束之前调用asynctask.get(…)进行同步.

根据日志,我的asynctask.onPostExecute()被称为ages
在asynctask.get()返回之后.更确切地说,onPostExecute被调用
在Activity.onResume(!)返回之后. (因此它确实被调用,我的方法定义还可以,我也使用@Override.)

我在某处读到了它,因为onPostExecute()在
UI线程的处理程序,UI线程必须已经准备好了-为什么
在这种情况下准备好了吗?我的应用程序从方向更改开始,但是由于清单中的设置,它不会导致任何配置更改.

有什么保证何时将onPostExecute()称为相对
到asynctask.get()?

解决方法:

According to the log, my asynctask.onPostExecute() gets called ages after asynctask.get() returns. More precisely, onPostExecute is called after Activity.onResume (!) returns.

根据我对源代码的阅读,get()仅等待doInBackground()完成.

Is there any guarantee when will onPostExecute() be called relative to asynctask.get() ?

根据我对源代码的读取,在get()返回之后的某个时候将调用onPostExecute().但是,这不是“保证”,因为这种行为是无证的,因此可能会发生变化.

标签:android-asynctask,oncreate,android
来源: https://codeday.me/bug/20191201/2080297.html