使用滑行

时间:2017-02-03 13:08:02

标签: java android caching android-glide

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

我想要什么

将图片上传到服务器并作为回报我正在获取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);
    }
});

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

4 个答案:

答案 0 :(得分:2)

试试这个

reinterpret_cast

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

也许你可以试试这个:

Glide.get(context).clearDiskCache()

Try reading this link as a ref

然而,此解决方案似乎也提供了更多。

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

之前提到的类似问题,您可以找到here

希望有所帮助。

干杯

答案 3 :(得分:0)

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

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