一、转载:
转自:http://blog.csdn.net/spt_dream/article/details/53412185
Glide的引入网上很多,更换图片时候调用资源id时候多更改名字才可以实现,网络请求时候用一个固定url请求也不加载直接读取缓存,导致后台换图片,手机不起作用。
网上说完全起线程清除缓存,或者设置跳过内存缓存:
Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
但是都不起作用!!!
解决方法有两个:
1.每次加载都清理缓存。
但这个方法是不可取的, 会导致每次都去网络加载图片. 显示非常慢. 这就相当于废弃了缓存这个好用的功能:
Glide.with(this)
.load(uri)
.asBitmap()
.centerCrop()
.diskCacheStrategy( DiskCacheStrategy.NONE )//禁用磁盘缓存
.skipMemoryCache( true )//跳过内存缓存
.placeholder(R.mipmap.ic_head_default)
.transform(new GlideCircleTransform(this)).into(headIV);
第二种方法:
.signature( new StringSignature("01"))//增加签名
这个api是增加签名,地址不变,改变这个签名参数也会不读取缓存重新请求。
我就是用这个方法,传递url不变也可以重新请求,不读取缓存。这个参数可以绑定版本号,每次更新重新获取,或者请求后台强大的Glide
二、个人解决方式:
1、既然同一个url会出现这个问题,是否可以考虑将图片地址进行改变呢
如果需求中上传的图片同一个ID不要求命名一样,那么可以考虑根据上传的图片名字,将上传的图片命名为带有图片名称相关的名字进行上传,从而改变url的地址。