Glide加载图片不更新问题

问题:在一个项目中使用了Glide加载本地图片,比如这里我选择保存的图片是:

 //保存图片的地址
    private String imgSave = "/" + Environment.getExternalStorageDirectory().getPath()
            + "/fitness/" + "addpublic.png";

然后我加载这张图片,ok成功了,之后我改变这张图片的内容,但是还是原来的地址,由于glide的缓存机制,相同地址的内容没有更新。

Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。缓存的过程首先是在内存中缓存,然后将加载的图片资源缓存到硬盘,这样就可以在随后的再次加载中使用缓存了,Glide使用缓存时候首先要检查内存这一层级是否缓存了相应的缓存,如果有,则直接使用,如果没有,则深入到硬盘缓存中检查是否有,如果有,则加载之,如果到这一步骤还没有,那么就只能作为一个全新的资源加载了。

即Glide先从内存缓存中查找,再从硬盘缓存中查找,只有这两个其中一个有缓存,都不会重新去本地再次获取。

解决方案:

 Glide.with(AddComActivity.this)
                    .load(imgSave)
                    .skipMemoryCache(true)//跳过内存缓存
                    .diskCacheStrategy(DiskCacheStrategy.NONE)//不要在disk硬盘缓存
                    .into(imgAddCom);

加载图片的时候,添加了2行,跳过内存缓存和不在硬盘缓存,让他重新去本地获取图片~这样就阔以啦~。

你可能感兴趣的:(遇到的问题或者BUG)