Glide在Recyclerview android数据绑定中使用不同的URL调用显示先前的URL缓存图像

时间:2019-12-11 04:14:09

标签: android-recyclerview recycler-adapter android-databinding android-glide glide

我已经尝试了以下来源,但没有找到解决方案。调用其他api后,第一个api调用结果图像缓存仍显示在recyclerview中

@BindingAdapter("imageUrl")
            @JvmStatic
            fun setImageResource(imageView: ImageView, imageUrl: String) {
                Glide.with(imageView.context)
                    .load(imageUrl)
                    .diskCacheStrategy(DiskCacheStrategy.NONE)
                    .skipMemoryCache(true)
                    .signature(ObjectKey(System.currentTimeMillis().toString()))
                    .placeholder(R.drawable.loader)
                    .error(R.drawable.loader)
                    .priority(Priority.HIGH)
                    .into(imageView)

           }

1 个答案:

答案 0 :(得分:0)

在UI线程之外调用Glide.get(context).clearDiskCache()。 (也请考虑使用clearMemory()以防止在清除磁盘缓存后出现意外情况)

读取Cache invalidation,因为否则无法从缓存中删除单个文件,请参阅#94中的参数。如果您解释“清除URL缓存”用例,我们也许可以给出更好的建议。

您也可以尝试将此行添加到代码中

.signature(new StringSignature(System.currentTimeMillis() / (24 * 60 * 60 * 1000)))