Glide高級使用技巧解決緩存key問題,防止反覆加載

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

 

業務需求:

列表逐個輪訓獲取視頻流中第一幀的截圖,雖然每次返回的圖片URL都是不同的,但是圖像沒有改變.導致每次刷新都沒有使用到glide緩存機制,出現重複加載浪費資源的情況

分析:

首先glide源碼4.8.0版本中,默認緩存key是通過model,signature,widthd,height,transformations等屬性共同作用的

 

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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章