我的后端每次将URL更改为同一张图片时,这会使Glide重新下载图片,即使图片没有更改。
所以我想知道是否有可能让Glide忽略查看变化的URL而仅检查签名,以便它可以正确地为我的应用程序缓存。
谢谢!
最佳答案
我在这里找到了答案:https://github.com/bumptech/glide/issues/607
您需要像这样重写getCacheKey()方法:
public class GlideUrlWithToken extends GlideUrl {
private String mSourceUrl;
public GlideUrlWithToken(String url, String token) {
super(new StringBuilder(url)
.append(token) // append the token at the end of url
.toString());
Preconditions.checkNotNull(url);
Preconditions.checkNotNull(token);
mSourceUrl = url;
Log.v(TAG, url);
}
@Override
public String getCacheKey() {
return mSourceUrl;
}
@Override
public String toString() {
return super.getCacheKey();
}
}
然后,您可以像下面这样调用Glide:
Glide.with(mContext).load(new GlideUrlWithToken(image.getLink(), token))
.signature(new StringSignature(signature))
.into(imageView);
这里的签名保存了我的imageId +来自服务器的updatedAt值,因此如果更新了图像,它应该重新下载图像。
关于android - 强制Glide仅查看签名以进行缓存或重新下载,因此请忽略其他URI(Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40194337/