glide使用稻扬,item不可見時(滑過了或頁面切換了)梭依。停止加載線程

glide和RecyclerView版本:

implementation 'com.github.bumptech.glide:glide:3.8.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'

列表適配器代碼

//未封裝adapter
public class GridAdapterNoPack extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private LayoutInflater mLayoutInflater;
    List<SearchResultItem> list;

    public GridAdapterNoPack(Context context, List<SearchResultItem> list) {
        mLayoutInflater = LayoutInflater.from(context);
        this.list = list;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mLayoutInflater.inflate(R.layout.grid_item, parent, false);
        ItemViewHolder viewHolder = new ItemViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
        if (position < list.size()) {
            ImageView iv = ((ItemViewHolder) holder).mContentTv;
            Glide.with(iv.getContext())
                    .load(list.get(position).getPgrpLogo())
                    .placeholder(R.mipmap.epg_bg)
                    .listener(new RequestListener<String, GlideDrawable>() {
                        @Override
                        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                            return false;
                        }

                        @Override
                        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                            Log.e("Glide", " position:" + position + " onResourceReady");
                            return false;
                        }
                    })
                    .into(iv);
            holder.itemView.setTag(position);
        }
    }

    @Override
    public int getItemCount() {
        return this.list.size();
    }

    class ItemViewHolder extends RecyclerView.ViewHolder {
        private ImageView mContentTv;

        ItemViewHolder(View itemView) {
            super(itemView);
            mContentTv = itemView.findViewById(R.id.video_image);
        }
    }

    void add(List<SearchResultItem> list, boolean b) {
        this.list.addAll(list);
        notifyDataSetChanged();
    }
}

滑動列表 觀察圖片加載情況铣减,onResourceReady打印了表示該位置圖片加載完成者铜。可得出結(jié)論:item不可見時線程及時回收了域仇。
因為我在項目中使用了BaseQuickAdapter類刑然,觀察發(fā)現(xiàn)快速滑動,之前的item還是會加載暇务。
為了解決這個問題泼掠,只得手動停止加載,代碼如下:

@Override
    public void onViewDetachedFromWindow(@NonNull RecyclerView.ViewHolder holder) {
        super.onViewDetachedFromWindow(holder);
        if(holder.getAdapterPosition()!=-1){
            Glide.clear(holder.itemView.findViewById(R.id.video_image));
        }
    }

值得注意的是般卑,我本來使用glide4.9.0時武鲁,無論有沒有使用baseQuickAdapter都沒辦法暫停線程。所以回退到了3.8.0
新版本真的要慎重檢驗再使用蝠检。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沐鼠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叹谁,更是在濱河造成了極大的恐慌饲梭,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焰檩,死亡現(xiàn)場離奇詭異憔涉,居然都是意外死亡,警方通過查閱死者的電腦和手機析苫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門兜叨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穿扳,“玉大人,你說我怎么就攤上這事国旷∶铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵跪但,是天一觀的道長履羞。 經(jīng)常有香客問我,道長屡久,這世上最難降的妖魔是什么忆首? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮被环,結(jié)果婚禮上糙及,老公的妹妹穿的比我還像新娘。我一直安慰自己蛤售,他們只是感情好丁鹉,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布妒潭。 她就那樣靜靜地躺著悴能,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雳灾。 梳的紋絲不亂的頭發(fā)上漠酿,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音谎亩,去河邊找鬼炒嘲。 笑死,一個胖子當(dāng)著我的面吹牛匈庭,可吹牛的內(nèi)容都是我干的夫凸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阱持,長吁一口氣:“原來是場噩夢啊……” “哼夭拌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衷咽,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鸽扁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后镶骗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桶现,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年鼎姊,在試婚紗的時候發(fā)現(xiàn)自己被綠了骡和。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片相赁。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖慰于,靈堂內(nèi)的尸體忽然破棺而出噪生,到底是詐尸還是另有隱情,我是刑警寧澤东囚,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布跺嗽,位于F島的核電站,受9級特大地震影響页藻,放射性物質(zhì)發(fā)生泄漏桨嫁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一份帐、第九天 我趴在偏房一處隱蔽的房頂上張望璃吧。 院中可真熱鬧,春花似錦废境、人聲如沸畜挨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巴元。三九已至,卻和暖如春驮宴,著一層夾襖步出監(jiān)牢的瞬間逮刨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工堵泽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留修己,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓迎罗,卻偏偏與公主長得像睬愤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子纹安,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355