我有一个按钮,它调用 Volley 库的 requestQueue.add 方法。在 onResponse 方法中,我调用:
popupBox.display(getString(R.string.successfulRegistration), false, true);
Display 方法,显示一个弹出窗口,因此必须在UI线程内调用。
我在onResponse
方法的开头放置了一个断点。
单击按钮后,立即切换到另一个应用程序并将我的应用程序发送到后台。
IDE在断点处停止,我从服务器得到了答案,但我的应用仍在后台,并且没有异常错误。
大约一分钟后,我将应用程序置于前台。之后,将弹出消息窗口。
这是否意味着我不需要检查我是否可以在onResponse
方法中执行与UI线程相关的操作,因为凌空处理了它?
答案 0 :(得分:0)
onResponse
和onErrorResponse
,否则它们通常在主线程上被调用。 Volley在非ui线程(非UI阻止)上进行Api调用。 Volley不会照顾您的生命周期。因此,如果您在活动中进行api调用并关闭该活动,则会收到回调。因此,您应该检查活动是否处于前台。