我在我的应用程序中到处使用Glide通过URL上传用户的个人资料图片。当用户更改其个人资料图片时,我会更新后端,以便URL得到更新。但是,Glide已经缓存了旧图片。我该如何覆盖以前缓存的图片,以便当用户在应用程序中导航时,他/她可以在所有活动中看到其个人资料图片的更改?
我在我的应用程序中到处使用Glide通过URL上传用户的个人资料图片。当用户更改其个人资料图片时,我会更新后端,以便URL得到更新。但是,Glide已经缓存了旧图片。我该如何覆盖以前缓存的图片,以便当用户在应用程序中导航时,他/她可以在所有活动中看到其个人资料图片的更改?
RequestOptions requestOptions = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE) // because file name is always same
.skipMemoryCache(true);
Glide.with(this)
.load(photoUrl)
.apply(requestOptions)
.into(profile_image);
在最新版本中,我们应该使用RequestOptions。
RequestOptions是Glide最新版本中提供的类型无关选项,可以自定义加载图片时的参数。
创建一个RequestOptions对象,并在加载图片时使用它。
在UI线程之外调用Glide.get(context).clearDiskCache()
。(还要考虑clearMemory()
,以防在清除磁盘缓存后出现意外情况)
阅读无效化缓存,因为否则无法从缓存中删除单个文件。如果您解释一下“清除URL的缓存”用例,我们可能能够给出更好的建议。