使用滑行时删除缓存

我知道这是一个非常基本的问题。 我试图找到众多解决方案,但我无法理解它们。

我想要的是

将图像上传到服务器并作为回报我正在获取URL但问题是在使用此URL设置图像时,设置了旧图像。 发生这种情况是因为滑行正在使用旧缓存并且不更新缓存。

怎么解决这个问题。

Glide.clear(profilePic); Glide.with(getApplicationContext()) .load(url) .diskCacheStrategy(DiskCacheStrategy.ALL) .skipMemoryCache(true) .transform(new CircleTransform(MainProfile.this)) .into(profilePic); 

目前,图片已更改,但当我单击后退按钮并返回此活动时,它会加载旧图像。 像这样从缓存加载图像。

 //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); } }); 

问题是,当我回到这个活动时,它显示旧图片而不是新图片。

试试吧

 Glide.with(DemoActivity.this) .load(Uri.parse("file://" + imagePath)) .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .into(mImage); 

DiskCacheStrategy.ALL替换为DiskCacheStrategy.NONE

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); 

也许你可以试试这个:

 Glide.get(context).clearDiskCache() 

尝试阅读此链接作为参考

然而,似乎也提供了这种解决方案。

 Glide.with(Activity.this) .load(Uri) .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .into(Image); 

参考哪个是之前提出的类似问题,您可以在此处找到。

希望有所帮助。

干杯

Glide具有内置function以使缓存无效。通过使用signature()函数,旧缓存可以无效。

 GlideApp.with(MainProfile.this) .load(mediaStoreUri) .signature(new MediaStoreSignature(mimeType, dateModified, orientation)) .into(view);