如何在安卓设备上清除Glide缓存?

3

我在我的应用程序中到处使用Glide通过URL上传用户的个人资料图片。当用户更改其个人资料图片时,我会更新后端,以便URL得到更新。但是,Glide已经缓存了旧图片。我该如何覆盖以前缓存的图片,以便当用户在应用程序中导航时,他/她可以在所有活动中看到其个人资料图片的更改?


如果URL发生变化,Glide会重新下载图像。 - Diego Torres Milano
请参考我在这里的答案:https://dev59.com/dlwX5IYBdhLWcg3wvRkf#33451376。这肯定会对你有所帮助。 - Nitesh Kumar
2个回答

6
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对象,并在加载图片时使用它。


1

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

阅读无效化缓存,因为否则无法从缓存中删除单个文件。如果您解释一下“清除URL的缓存”用例,我们可能能够给出更好的建议。


他不想清除Gradle的缓存,而是想从ImageView中删除Glide的缓存,以查看更新后的图像。 - Rajesh N
@Jigar Patel,我认为你误解了问题。这是当用户真正使用应用程序时的情况。 - TheQ
@TheQ 请查看更新后的答案。 - Jigar Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接