美文网首页
问题:Glide图片缓存问题,同一url换图片不起作用问题

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

作者: 玉圣 | 来源:发表于2017-09-28 13:35 被阅读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,则可以通过转载的文章中所述的第二种进行解决

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/kpimextx.html