我正在玩 Volley,当 Volley 清空其缓存时,我想保留某些数据(JSON 或图像),无论是在内存中还是在其 DiskBasedCache 中。目前我正在做的是,如果一个项目在内部被标记为要持久化,我们将它保存到一个文件中,如果 Volley 失败,那么我们检查文件中的数据。
我目前正在做的是破解 DiskBasedCache 并持有一个静态的 ArrayList 键,以便在调用 pruneIfNeeded 时不清除。有没有更推荐的方法来做到这一点?
我正在玩 Volley,当 Volley 清空其缓存时,我想保留某些数据(JSON 或图像),无论是在内存中还是在其 DiskBasedCache 中。目前我正在做的是,如果一个项目在内部被标记为要持久化,我们将它保存到一个文件中,如果 Volley 失败,那么我们检查文件中的数据。
我目前正在做的是破解 DiskBasedCache 并持有一个静态的 ArrayList 键,以便在调用 pruneIfNeeded 时不清除。有没有更推荐的方法来做到这一点?
我认为您的解决方案是一个很好的有效选择。您还有另一种选择,它不那么“hacky”但需要更多工作:
在你对 Volley 的调用之上创建一个“层”,它有自己的磁盘缓存和自己的内存缓存。为了这个答案,让我们调用层网络接口。
遵循以下流程:
当需要网络资产时:
每个磁盘操作都应该是非阻塞的并在后台线程上执行。与网络层的整个通信应该类似于带有成功和错误侦听器的 Volley 风格。