如何为Volley Requesting添加特定时间

时间:2016-06-02 18:00:05

标签: android android-studio android-volley

我在TabLayout,Tab1(第一个请求)和Tab2(第二个请求)中使用多个凌空请求.Problem同时请求,这使得应用程序在TabLayout从Tab1交换到Tab2期间冻结。我想要一个特定的延迟,请求第二。我希望你了解情况,随时提出更多建议/澄清。

1 个答案:

答案 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。