【问题标题】:Android Volley duplicates requestAndroid Volley 重复请求
【发布时间】:2020-11-05 05:39:10
【问题描述】:

截击请求在一段时间内完成。它无缘无故地重复(看似)例如,当我想提出两个请求时,凌空执行了 4 次。下面是我的代码,你们中的一些人可能会在我的代码中提示问题?

while(i<chnumTxt.length()){
            final RequestQueue queue;
            queue = Volley.newRequestQueue(this);
            char letter=chnumTxt.charAt(i);
            Log.i("check","counter="+i+" "+"digit="+letter);
            String URL = "http://192.168.4.20:80/chnumber?key="+letter;
            Log.i("web",URL);

            StringRequest request = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    //Log.i("html",response.toString());
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });
            
            queue.add(request);
            
            new CountDownTimer(500, 500) {
                public void onFinish() {
                    // When timer is finished
                    // Execute your code here
                }

                public void onTick(long millisUntilFinished) {
                    
                }
            }.start();
            
            i++;
        }

【问题讨论】:

  • 我想知道这个chnumTxt.length()的价值是什么
  • @Ticherhaz 21

标签: android networking android-volley


【解决方案1】:

最终我在某处找到了答案。如果链接看起来很慢,Volley 将重试链接。所以在阻止它之后,它是正确的。就像:

首先声明一个变量:

static final float DEFAULT_BACKOFF_MULT = 1f;

定义请求后,执行以下代码:

request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 0,
                        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2016-09-19
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多