安卓中的持久/离线图片缓存

3
我正在尝试找出最佳和最有效的方法将图像缓存到磁盘上,以使它们在应用程序被杀死并在飞行模式下重新启动后仍然存在。考虑以下用例:
  1. 打开应用程序并获取所有图像,并在它们各自的ImageView中显示
  2. 关闭应用程序
  3. 将设备置于飞行模式
  4. 再次打开应用程序。
我正在尝试让图像在离线缓存中持久存在,以便在上述情况下可以显示它们。
我查阅了Picasso和Glide的文档,但不确定它们的磁盘缓存是否适用于此情况。
是否有一种使用Picasso或Glide实现此目的的方法?我正在尝试避免编写自定义实现来将其存储在SQLite等中。

我相信Picasso具有离线网络功能。换句话说,Picasso应该能够在在线时自动获取并保存到磁盘以供离线使用。请查看:https://dev59.com/H2Ag5IYBdhLWcg3wnMC3#29812750 - Brian
Picasso没有提供此类钩子。但你可以通过服务器设置适当的缓存标头(或在OkHttp拦截器中重写响应)来实现。 - Eric Cochran
@Brian是正确的!请查看此答案以获取详细信息。https://dev59.com/H2Ag5IYBdhLWcg3wnMC3#34051356 - Aishwarya Tiwari
1个回答

3
Glide会自动为您完成此操作,而无需您额外的工作。您还可以自定义要在缓存中存储的所请求图片版本。
需要考虑的一个重要事项是,如果您使用Glide获取图像的URL在离线时不可用,否则您将需要某种方式来缓存它们,以便在离线时可以启动Glide调用。
您可以在此项目中查看我如何实现:https://github.com/KhalafMH/popular-movies-android.git 有关如何配置Glide缓存的详细信息,请参见:
http://bumptech.github.io/glide/doc/caching.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接