最近发现一个问题,内容运营在修改图片的后,glide没有更换图片,查到是因为图片地址没有改变,导致glide认为是图片没有修改,查到了所转载的文章,但是此方法是手机端设置的,明显这种情况解决不了,还是记录一下,让运营在修改图片的时候地址不要和上一次相同即可
转载原文章地址
先描述下现象,load的URL没有改变,但是服务器上图片的内容改变了,Glide清理了缓存但是图片没有更新。
解决办法就是给图片加上signature的标识
-
Glide.with(context.getApplicationContext())
-
.load(imageurl)
-
.signature(
new StringSignature(String.valueOf(System.currentTimeMillis())))
-
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
-
.placeholder(R.drawable.placeholder)
-
.into(imageItem);
当前用户登录的时候就在sharedprefence里存储用户的信息,头像的URL ,再添加一项就是当前系统时间
例如:
myUser.setModifyTime(String.valueOf(System.currentTimeMillis()));
当用户修改了头像的时候 在shareP里更新时间。然后通过
.signature(new StringSignature(myUser.getModifyTime))
实现头像的刷新。
https://github.com/bumptech/glide/issues/1117
https://github.com/bumptech/glide/issues/624