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