问题:Glide图片缓存问题,同一url换图片不起作用问题

2017-09-28  本文已影响616人  玉圣

一、转载:

转自: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的地址。

2、若客户端或者服务端要求是一个url,则可以通过转载的文章中所述的第二种进行解决
上一篇 下一篇

猜你喜欢

热点阅读