使用Signature Android glide查找缓存的图像

时间:2018-06-19 17:37:12

标签: android android-glide

我之所以使用此代码,是因为每次服务器上的映像更改时,我都想下载最新版本。

 Glide.with(yourFragment)
 .load(yourFileDataModel)
 .signature(new StringSignature(new ObjectKey(System.currentTimeMillis()))
 .into(yourImageView);

但是这里有一个问题。如果Internet连接断开(或smt),滑行将无法在磁盘缓存中找到该映像,并且将显示错误。如何使用签名找到缓存的图像?

3 个答案:

答案 0 :(得分:1)

您使用错误的key进行签名。 System.currentTimeMillis()每毫秒变化一次。您要做的是提供一些仅在图像更改时才会更改的键。您必须做这样的事情。您可以从服务器请求image.getUpdatedAt()

GlideApp.with(context)
        .load(glideUrlCacheKey)
        .signature(new ObjectKey(image.getUpdatedAt()))
        .into(holder.customerImage);

答案 1 :(得分:0)

此答案可能对您有帮助

Glide.with(mContext)
  .load(urlProfile)
  .apply(RequestOptions.signature(new StringSignature(...))
      .diskCacheStrategy(DiskCacheStrategy.NONE))
  .into(imageView);

通过应用signature来使用RequestOptions

有用的链接:http://bumptech.github.io/glide/doc/options.html#requestoptions

答案 2 :(得分:0)

对于脱机工作,将图像的URL存储在sqllite中,并检查Internet连接是否未激活,然后从sqllite中滑动url