使用Google的Volley设置缓存过期策略

21

是否可以修改Google的Volley库缓存的过期策略?我相信您可以实现自己的缓存,但使用默认实现有简单的方法吗?

2个回答

24

无需编写自己的缓存实现。您可以更改方法com.android.volley.toolbox.HttpHeaderParser.parseCacheHeaders(NetworkResponse response),忽略这些标头,将entry.softTtl和entry.ttl字段设置为适合您的任何值,并在您的请求类中使用您的方法。

我的答案中有一个类似问题的例子 - Android Volley + JSONObjectRequest Caching


19

目前看来缓存过期时间仅由响应中的“缓存”标头控制,因此基本上您只能听从服务器的安排。无论服务器在“过期时间”或“max-age =”中返回什么值都将被使用。 如果需要自定义过期策略,我们将不得不使用自己的缓存...


2
这是不正确的。使用oleksandr_yefremov提供的答案,您可以覆盖缓存过期标头。 - Ljdawson
@Laurence,您说得很对,oleksandr的答案更好,但有一(2)个细节:a)如果您控制Web服务器/后端,则可以在其中设置所需的到期间隔; b)如果您无法控制Web服务器,则可能有很好的理由设置到期策略,并且尝试覆盖它可能不是一个很好的主意。我的观点是:开发人员需要考虑后果,而不是仅仅因为现有的过期策略不容易适应当前应用程序而盲目地覆盖它。 - Ognyan
3
使用oleksandr_yefremov提供的方法,您仍然需要针对每个请求显式地设置新的标头规则。并非您所有的请求都会遵循此规则。 - Ljdawson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接