【问题标题】:Android Volley - Persist cache of specific itemsAndroid Volley - 保留特定项目的缓存
【发布时间】:2013-10-08 22:50:52
【问题描述】:

我正在玩 Volley,当 Volley 清空其缓存时,我想保留某些数据(JSON 或图像),无论是在内存中还是在它的 DiskBasedCache 中。目前我正在做的是,如果一个项目在内部被标记为要持久化,我们将它保存到一个文件中,如果 Volley 失败,那么我们检查文件中的数据。

我目前正在做的是破解 DiskBasedCache 并持有一个静态 ArrayList 键,以便在调用 pruneIfNeeded 时不清除。有没有更推荐的方法来做到这一点?

【问题讨论】:

    标签: java android android-volley


    【解决方案1】:

    我认为您的解决方案是一个很好的有效选择。您还有另一种选择,它不那么“hacky”但需要更多工作:

    在您对 Volley 的调用之上创建一个“层”,该层具有自己的磁盘缓存和内存缓存。为了这个答案,让我们调用层 network interface

    按照这个流程:

    当需要网络资产时:

    1. 检查网络层的内存缓存 - 如果找到则返回。
    2. no-hit:检查网络层的磁盘缓存 - 如果找到则返回。
    3. 无命中:将请求转发给 Volley。
    4. 当 Volley 返回结果时,如果资产是您希望始终保留的类型,请将其保留在磁盘和缓存中。
    5. 返回结果。

    每个磁盘操作都应该是非阻塞的并在后台线程上执行。与网络层的整个通信应该类似于带有成功和错误侦听器的 Volley 风格。

    【讨论】:

      猜你喜欢
      • 2020-11-28
      • 2013-05-22
      • 2018-04-05
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2016-04-16
      • 2017-01-19
      • 2010-10-17
      相关资源
      最近更新 更多