我的后端每次请求时都会将网址更改为相同的图片,这会导致Glide重新下载图片,即使图片没有更改。 所以我想知道是否有可能让Glide忽略查看更改的URL并仅检查签名,以便它可以正确缓存我的应用程序。
谢谢!
答案 0 :(得分:1)
我在这里找到答案: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值,因此如果图像更新,则应重新下载该图像。