第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

NewsAsyncTask 類中 為什么在處理完圖片后要 mTask.remove(this);

public?void?loadImages(int?start,?int?end)?{
????for?(int?i?=?start;?i?<?end;?i++)?{
????????String?url?=?NewsAdapter.URLS[i];
????????Bitmap?bitmap?=?getBitmapFromCache(url);
????????//如果沒有,調(diào)用線程下載
????????if?(bitmap?==?null)?{
????????????//調(diào)用即下載圖片
????????????NewsAsyncTask?task?=?new?NewsAsyncTask(url);
????????????task.execute(url);
????????????mTask.add(task);
????????}?else?{
????????????ImageView?imageView?=?(ImageView)?mListView.findViewWithTag(url);
????????????imageView.setImageBitmap(bitmap);
????????}
????}
}

在調(diào)用NewsAsyncTask該類的最后mTask.remove(this); 視頻里老師說的是圖片加載完成后刪除。但我有一個(gè)疑問,mTask最開始應(yīng)該是空的,程序首先調(diào)用的就是remove而不是add。那么這里我就已經(jīng)不能理解了。其次remove后,又在該類執(zhí)行完后,把task又加了回去,我也不理解這個(gè)。相關(guān)的兩行代碼代碼:

task.execute(url);?

mTask.add(task); ??

?求懂得同學(xué)們指教。

正在回答

1 回答

啟動(dòng):執(zhí)行onScroll(),在當(dāng)前可見item添加相應(yīng)task。所以最開始mTask不為空。

ps:(onScroll()方法在ListView啟動(dòng)和繪制時(shí)會(huì)不斷被回調(diào))

在當(dāng)前可見item中,一個(gè)item加載后,即該ImageLoader中的線程執(zhí)行完畢,就會(huì)remove task。

再加載下一個(gè)item,即開啟新線程.....

當(dāng)滾動(dòng)停止后,就為當(dāng)前可見item每個(gè)item依次開啟新的線程,繼續(xù)add,并加載item。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Veritas丶 提問者

非常感謝!
2015-08-24 回復(fù) 有任何疑惑可以回復(fù)我~
#2

大強(qiáng)強(qiáng)

mTask.remove(this);這個(gè)解釋還是不是很懂,當(dāng)我滾動(dòng)lisview時(shí),即調(diào)用mImageLoader.cancelAllTask(),我在ImageLoader的cancelAllTask方法中輸出mTask集合的size是0。如果是0,那么取消什么?
2016-02-10 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Android必學(xué)-異步加載
  • 參與學(xué)習(xí)       50616    人
  • 解答問題       333    個(gè)

了解Android中的異步加載處理方法,這是面試問的最多的知識(shí)點(diǎn)

進(jìn)入課程

NewsAsyncTask 類中 為什么在處理完圖片后要 mTask.remove(this);

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)