当我的应用程序进入前台时,Volley是否执行UI线程操作?

时间:2018-09-20 12:19:53

标签: android android-volley

我有一个按钮,它调用 Volley 库的 requestQueue.add 方法。在 onResponse 方法中,我调用:

    popupBox.display(getString(R.string.successfulRegistration), false, true); 

Display 方法,显示一个弹出窗口,因此必须在UI线程内调用。

我在onResponse方法的开头放置了一个断点。

单击按钮后,立即切换到另一个应用程序并将我的应用程序发送到后台。

IDE在断点处停止,我从服务器得到了答案,但我的应用仍在后台,并且没有异常错误

大约一分钟后,我将应用程序置于前台。之后,将弹出消息窗口。

这是否意味着我不需要检查我是否可以在onResponse方法中执行与UI线程相关的操作,因为凌空处理了它?

1 个答案:

答案 0 :(得分:0)

默认情况下,除非在主线程上调用

onResponseonErrorResponse,否则它们通常在主线程上被调用。 Volley在非ui线程(非UI阻止)上进行Api调用。 Volley不会照顾您的生命周期。因此,如果您在活动中进行api调用并关闭该活动,则会收到回调。因此,您应该检查活动是否处于前台。