使用滑行时删除缓存
我知道这是一个非常基本的问题。 我试图找到众多解决方案,但我无法理解它们。
我想要的是
将图像上传到服务器并作为回报我正在获取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);