Android Volley JsonObjectRequest每次都会在移动数据上返回相同的响应

时间:2015-09-30 09:16:43

标签: android json android-volley jsonobjectrequest

我正在使用Volley JsonObjectRequest从服务器获取数据。

代码段:

JsonObjectRequest jsObjRequest = new JsonObjectRequest
        (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(JSONObject response) {
        System.out.println("Response: " + response.toString());
    }
}, new Response.ErrorListener() {

    @Override
    public void onErrorResponse(VolleyError error) {
        // TODO Auto-generated method stub

    }
});

但我每次都在移动数据连接上得到JSONObject response

注意:它完美适用于WiFi连接。

有人面临这个问题吗?任何解决方案?

1 个答案:

答案 0 :(得分:16)

@BNK request.setShouldCache(false);为我工作。这是凌空缓存管理的问题。

我认为,当发送请求时:

  • 它会首先点击缓存并将其发送到onResponse

  • 然后当结果来自远程服务器时,它会将其提供给onResponse

如果使用volley中实现的任何默认Request类(例如StringRequest,JsonRequest等),则在将请求对象添加到齐射setShouldCache(false)之前调用RequestQueue

request.setShouldCache(false);
myQueue.add(request);

您还可以为缓存设置到期策略

See this answer for more details