Android Volley JsonObjectRequest returns 每次在移动数据上的响应相同

Android Volley JsonObjectRequest returns same response every time on mobile data

我正在使用 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 连接上工作完美。

有人遇到这个问题吗?任何解决方案?

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

我假设发送请求时:

  • 它将首先访问缓存并将其发送到 onResponse

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

如果您使用任何在 volley 中实现的默认请求 类(例如 StringRequest、JsonRequest 等),然后在将请求对象添加到 volley [=15]之前调用 setShouldCache(false) =]

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

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

See this answer for more details