七牛云带验证URL
http://xxx.com/FmmoICAJpy2Q1iNGUw7R2K94uH5x?token=dTVWOtVUIiuiyke-tBBl8pl1w6sdK3iO_kE4p9yQ:7SM9kXzG6DvsuehiiJMxHy41SUQ
七牛云带验证并且带过期时间的URL
http://xxx.com/FmmoICAJpy2Q1iNGUw7R2K94uH5x?e=1494561302&token=dTVWOtVUIiuiyke-tBBl8pl1w6sdK3iO_kE4p9yQ:7SM9kXzG6DvsuehiiJMxHy41SUQ
======解决方法======
glide的真正的缓存key是一堆参数组成的,而图片的url只是key其中的一个参数而已
glide源码中会调用DataFetcher的getId方法,加载网络图片是使用的HttpUrlFetcher的getCacheKey方法
1.创建这个类 重写getCacheKey
public class QNCacheGlideUrl extends GlideUrl {
private String mUrl;
public QNCacheGlideUrl(String url) {
super(url);
mUrl = url;
}
@Override
public String getCacheKey() {
return checkQnUrl() && !TextUtils.isEmpty(getQNCacheKey()) ? getQNCacheKey() : super.getCacheKey();
}
private String getQNCacheKey() {
String cacheKey = null;
int index = mUrl.indexOf("?");
if (index != -1) {
cacheKey = mUrl.substring(0, index);
}
return cacheKey;
}
public boolean checkQnUrl() {
if (!TextUtils.isEmpty(mUrl) && (mUrl.contains("&token=") || mUrl.contains("?token="))) {
return true;
}
return false;
}
}2.使用方法
Glide.with(imageView.getContext())
.load(new QNCacheGlideUrl(url))
.into(imageView);glide的真正的缓存key是一堆参数组成的,而图片的url
本文介绍如何解决七牛云带验证及过期时间的URL在Glide中的缓存问题,通过自定义QNCacheGlideUrl类实现正确的缓存key生成。
621

被折叠的 条评论
为什么被折叠?



