You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android使用Volley请求JSON数据仅显示缓存旧数据如何实现实时更新

问题原因

你使用的Volley网络请求框架默认开启了HTTP缓存机制,相同URL的请求会优先读取本地缓存返回,不会主动请求服务器最新数据,所以才会出现只有清空应用缓存才能拿到新内容的情况。

修复方案

方案1:直接关闭当前接口的缓存(最简便,适合实时性要求高的接口)

在jsonrequest()方法中,将请求添加到请求队列之前,添加关闭缓存的配置即可:

// 原有代码
requestQueue = Volley.newRequestQueue(getActivity());
// 新增:关闭当前请求的缓存
request.setShouldCache(false);
requestQueue.add(request);

同时要注意,你当前的代码每次请求成功都是往lstAnime里追加数据,会导致多次请求后出现重复数据,需要在解析新数据前清空原有列表:

@Override
public void onResponse(JSONArray response) {
    loading.setVisibility(View.GONE);
    JSONObject jsonObject  = null ;
    // 新增:清空原有旧数据
    lstAnime.clear();
    // 原有解析逻辑不变
    for (int i = 0 ; i < response.length(); i++ ) {
        try {
            jsonObject = response.getJSONObject(i) ;
            Anime anime = new Anime() ;
            anime.setName(jsonObject.getString("title"));
            anime.setDescription(jsonObject.getString("description"));
            anime.setDate(jsonObject.getString("date"));
            anime.setCategorie(jsonObject.getString("category"));
            anime.setAuthor(jsonObject.getString("admin"));
            anime.setImage_url(jsonObject.getString("thumbnail"));
            lstAnime.add(anime);

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    setuprecyclerview(lstAnime);
}

方案2:添加请求头强制获取最新数据(无需完全关闭缓存,兼容性更好)

如果不想完全关闭Volley的缓存能力,可以重写请求的getHeaders()方法,添加缓存控制头,强制要求服务端返回最新内容:

request = new JsonArrayRequest(JSON_URL, new Response.Listener<JSONArray>() {
    // 原有响应逻辑不变
}, new Response.ErrorListener() {
    // 原有错误处理逻辑不变
}) {
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        Map<String, String> headers = new HashMap<>();
        headers.put("Cache-Control", "no-cache");
        headers.put("Cache-Control", "no-store");
        return headers;
    }
};

可选优化:添加下拉刷新功能

如果需要支持用户手动触发刷新,可以在布局中用SwipeRefreshLayout包裹RecyclerView,设置刷新监听后,在回调中调用jsonrequest()方法即可实现手动刷新数据。

内容的提问来源于stack exchange,提问作者Litu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:27:04