当我在我的应用中使用Glide时,我遇到了麻烦。据我所知,如果图像下载一次并且我从其他活动请求缓存中的图像,则Glide必须快速显示图像。我得到了这种行为,但不是在我的应用程序中。图像加载非常慢(大约3秒),虽然在另一个应用程序中它大约是0.4秒。 我的代码叫Glide:
Glide.with(this)
.load(url)
.signature(new StringSignature(url))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mHeader);
在其他活动代码中是相同的。 你能救我吗? 感谢
答案 0 :(得分:1)
您不需要signature(url)
部分,模型(在您的情况下为url
字符串)已经是缓存键的一部分。
问题可能是您的标题更改了大小。对于缓存命中,视图大小(=结果位图大小)需要是常量。但是,由于您正在执行ALL
缓存,因此负载仍然很快。网址中是否有任何变化,例如sessionid或类似内容?这会使高速缓存失效。
如果您加载的网址是动画GIF RESULT
,则缓存可能是罪魁祸首,here's a reference。