我在TabLayout,Tab1(第一个请求)和Tab2(第二个请求)中使用多个凌空请求.Problem同时请求,这使得应用程序在TabLayout从Tab1交换到Tab2期间冻结。我想要一个特定的延迟,请求第二。我希望你了解情况,随时提出更多建议/澄清。
答案 0 :(得分:0)
我非常怀疑应用程序因为通过排球发送请求而冻结。 无论如何,如果想在第一个请求之后发送第二个请求,请将其放在第一个请求的响应侦听器中,如
JsonObjectRequest firstRequest = new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//Send 2nd request here
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Handle Error case here
}
});
mRequestQueue.add(firstRequest);
如果要在切换到选项卡2后的x秒后发送第二个请求,可以使用postDelayed
来检测选项卡是否已更改(例如,onResume
如果您使用的是片段像标签一样)
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
//Your second request goes here
}
},
1000); //Will execute after one second.
对于某些高级用法,您还可以配置排序的请求队列大小。对于您的特定方案,您可以将here所述的最大并行请求数设置为1。