Android中的持久/离线图像缓存
问题描述:
我想弄清楚将图像缓存到磁盘上的最佳方式和最有效的方式,这样即使应用程序被终止并在飞行模式下重新启动后,它们也会持续存在。请看下面的用例:Android中的持久/离线图像缓存
- 打开应用程序,并获得所有图像,并在各自的ImageView再次
- 杀死空气中的平面模式
- 打开应用
- 认沽设备的应用显示出来。
我试图让图像保存在脱机缓存中,以便它们可以在上面提到的场景中显示。
我经历了毕加索和滑翔的文档,并不清楚他们的磁盘缓存是否可以在这种情况下工作。
有没有办法使用毕加索或滑翔来做到这一点?我试图避免必须编写一个自定义实现存储在SQLite等。
任何帮助,高度赞赏! 谢谢
答
Glide会默认为你做这个,没有任何额外的工作在你身边。您还可以自定义要存储在缓存中的请求图像的版本。
您需要考虑的一件重要事情是,如果使用Glide获取图像的URL可以脱机使用,否则您需要使用某种方法来缓存这些内容,以便您可以启动Glide调用离线。
你可以看到我是如何做的这个项目:https://github.com/KhalafMH/popular-movies-android.git
要了解如何配置滑翔缓存见:
http://bumptech.github.io/glide/doc/caching.html
我相信毕加索具有离线网络功能。换句话说,毕加索应该可以在线时自动获取并保存到磁盘以供离线使用。退房:http://stackoverflow.com/a/29812750/394933 – Brian
毕加索提供没有这样的钩子。虽然你可以从服务器设置正确的缓存头(或者在OkHttp拦截器中重写响应)。 –
@布莱恩是正确的!查看这个答案的细节。 http://stackoverflow.com/a/34051356/3921977 –