【问题标题】:Set expiration policy for cache using Google's Volley使用 Google 的 Volley 设置缓存的过期策略
【发布时间】:2013-05-22 21:36:51
【问题描述】:

是否可以修改 Google 的 Volley 库中缓存的过期策略?我相信您可以实现自己的缓存,但是有没有一种简单的方法可以使用默认实现来做到这一点?

【问题讨论】:

    标签: android android-volley


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这是不正确的。使用 oleksandr_yefremov 提供的答案,您可以覆盖缓存过期标头。
      • @Laurence 您绝对正确,oleksandr 的答案更好,但有一个(2)个要点:a)如果您可以控制 Web 服务器/后端,则可以设置那里所需的到期间隔; b) 如果您无法控制 Web 服务器,那么设置过期策略可能是有充分理由的,尝试覆盖它可能不是一个好主意。我的观点是:开发者需要考虑后果可能是什么,而不是仅仅因为现有的 exp 策略不适合当前的应用程序而盲目地覆盖它。
      • True 但使用 oleksandr_yefremov 提供的方法,您仍然必须为每个请求显式设置新的标头规则。并非您的所有请求都遵循此规则。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2019-09-19
      • 1970-01-01
      • 2015-09-30
      • 2010-11-21
      • 2011-10-31
      相关资源
      最近更新 更多