我知道这是一个非常基本的问题。我试图找到众多解决方案,但我无法理解它们。
我想要什么
将图像上传到服务器,作为返回,我得到了 URL,但问题是在使用此 URL 设置图像时,设置了旧图像。发生这种情况是因为 Glide 正在使用旧缓存而不是更新缓存。
如何解决这个问题。
Glide.clear(profilePic);
Glide.with(getApplicationContext())
.load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.skipMemoryCache(true)
.transform(new CircleTransform(MainProfile.this))
.into(profilePic);
目前,图片已更改,但当我单击后退按钮并返回此 Activity 时,它会加载一张旧图片。像这样从缓存中加载图像。
//setting up the profile pic
Glide.with(getApplicationContext())
.load(userProfilePicUrl)
.asBitmap()
.centerCrop()
.into(new BitmapImageViewTarget(profilePic) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(MainProfile.this.getResources(), resource);
circularBitmapDrawable.setCircular(true);
profilePic.setImageDrawable(circularBitmapDrawable);
}
});
问题是当我回到这个 Activity 时它显示旧图片而不是新图片。
最佳答案
RequestOptions 在最新版本的 Glide 中提供与类型无关的选项以使用 Glide 自定义加载。
制作一个RequestOptions 对象并在我们加载图像时使用它。
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);
关于java - 使用 Glide 时删除缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025083/