我正在编写一个Android应用程序,我需要在那里有一个离线模式,这意味着我需要从后端下载所有图像,如果我没有互联网连接,我将能够向他们展示用户。我阅读了缓存Glide 4.3.1的官方文档,并尝试使用此代码下载:
GlideApp.with(context)
.downloadOnly()
.load(url)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.submit();
要加载图像我使用:
GlideApp
.with(context)
.load(url)
.error(R.drawable.image_placeholder)
.into(imageView);`
看起来它有效,因为我的应用程序占用的空间增加了。但是当我尝试在离线模式下运行我的应用程序时,大多数图像都会被跳过,而在日志中我会看到下一个:
Load failed for myhostname/myfilename.jpg with size [395x485]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE
Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetch failed
Cause (1 of 1): class java.net.UnknownHostException: Unable to resolve host "cava.cool": No address associated with hostname
有人遇到类似问题吗?
P.S。当我有网络连接时,它是完美的。