Glide高级使用技巧解决缓存key问题,防止反复加载

参考资料:https://muyangmin.github.io/glide-docs-cn/doc/caching.html

 

业务需求:

列表逐个轮训获取视频流中第一帧的截图,虽然每次返回的图片URL都是不同的,但是图像没有改变.导致每次刷新都没有使用到glide缓存机制,出现重复加载浪费资源的情况

分析:

首先glide源码4.8.0版本中,默认缓存key是通过model,signature,widthd,height,transformations等属性共同作用的

Glide高级使用技巧解决缓存key问题,防止反复加载_第1张图片

 

model其实就是我们传入的url字符串

那么可以从model这个变量入手,改造model,使其满足我们的业务需要

import com.bumptech.glide.load.model.GlideUrl;

public class MyGlideUrl extends GlideUrl {

    private String eventId;

    public MyGlideUrl(String url,String eventId) {
        super(url);
        this.eventId = eventId;
    }

    @Override
    public String getCacheKey() {
        return eventId;
    }


}

封装自己的url类,并根据业务需要重写getCacheKey()方法

 

MyGlideUrl myGlideUrl = new MyGlideUrl(picUrl,event.getId());
Glide.with(cext)
    .load(myGlideUrl)
    .apply(requestOptions)
    .into(holder.eventIv);

 

你可能感兴趣的:(【android】问题解决,【android】技术分享)