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

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

task.execute(url);?

mTask.add(task); ??

?求懂得同學們指教。

正在回答

1 回答

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

ps:(onScroll()方法在ListView啟動和繪制時會不斷被回調(diào))

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

再加載下一個item,即開啟新線程.....

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

0 回復 有任何疑惑可以回復我~
#1

Veritas丶 提問者

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

大強強

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

舉報

0/150
提交
取消
Android必學-異步加載
  • 參與學習       50617    人
  • 解答問題       326    個

了解Android中的異步加載處理方法,這是面試問的最多的知識點

進入課程

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

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號