Glide v4.4禁用内存缓存和磁盘缓存故障

时间:2017-12-27 08:12:52

标签: android android-glide

图像文件从服务器下载并始终保存为相同的文件名。

所以在早期版本的滑行中,我已经过测试

Uri uri = Uri.fromFile(new File(downloadPath));
GlideApp.with(this)
        .load(uri)
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        .skipMemoryCache(true)
        .into(mDownloadImageView);

当图像更改时,它似乎适用于具有相同名称的文件。官方文件Glide Caching如上所述。

但是现在在Glide 4.4.0中,我再次使用了这段代码而且它无效。我需要添加如下签名:

Uri uri = Uri.fromFile(new File(downloadPath));
GlideApp.with(this)
        .load(uri)
        .signature(new ObjectKey(System.currentTimeMillis()))
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        .skipMemoryCache(true)
        .into(mDownloadImageView);

添加签名密钥后,它就可以了。

有没有人遇到过同样的情况? DiskcacheStrategy无,并且跳过内存缓存为真,对我没有任何影响。

2 个答案:

答案 0 :(得分:0)

是的,我有同样的问题。 我必须使用签名,diskCacheStrategy()设置为NONE,skipMemoryCache()设置为true,如果我想每次刷新图像。

另一个问题是,如果我将diskCacheStrategy()设置为ALL并带有一些签名(为了在某些情况下强制缓存刷新) - 它无效。签名每次都在变化,但Glide总是从缓存加载图像而不想刷新它。

它在Glide v3上运行良好,升级到v4后停止正常工作。

答案 1 :(得分:0)

您现在必须使用RequestOptions

 Glide.with(this).load(imageResource)
        .apply(RequestOptions()
                    .placeholder(R.drawable.ic_no_profile_image)
                    .centerCrop()
                    .diskCacheStrategy(DiskCacheStrategy.NONE)
                    .skipMemoryCache(true)
                    .dontAnimate())
        .into(profileImageView)