gpt4 book ai didi

android - 如何更改 volley 中的默认磁盘缓存行为?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:00 26 4
gpt4 key购买 nike

我用来获取图像的服务,像许多这样的网站一样,没有缓存控制 header 指示图像应该缓存多长时间。 Volley 默认使用 http 缓存控制 header 来决定在磁盘上缓存图像多长时间。我如何才能覆盖此默认行为并将此类图像保留一段时间?

谢谢

最佳答案

我需要将默认缓存策略更改为“全部缓存”策略,而不考虑 HTTP header 。

您想缓存一段时间。有几种方法可以做到这一点,因为代码中有很多地方“触及”了网络响应。我建议编辑 HttpHeaderParser(第 39 行的 parseCacheHeaders 方法):

Cache.Entry entry = new Cache.Entry();
entry.data = response.data;
entry.etag = serverEtag;
entry.softTtl = softExpire;
entry.ttl = now; // **Edited**
entry.serverDate = serverDate;
entry.responseHeaders = headers;

还有一个到 Cache.Entry 类:

/** True if the entry is expired. */
public boolean isExpired() {
return this.ttl + GLOBAL_TTL < System.currentTimeMillis();
}

/** True if a refresh is needed from the original data source. */
public boolean refreshNeeded() {
return this.softTtl + GLOBAL_TTL < System.currentTimeMillis();
}

其中 GLOBAL_TTL 是一个常量,表示您希望每个图像在缓存中保留的时间。

关于android - 如何更改 volley 中的默认磁盘缓存行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18065568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com