Android volley通過(guò)網(wǎng)絡(luò)請(qǐng)求圖片流程分析

1.1 Android volley通過(guò)網(wǎng)絡(luò)請(qǐng)求圖片流程

VolleyRequestImage
1.2.1 ImageLoader的get方法
  1. 首先ImageCache緩存中查找
  2. 緩存不存在則
    a. 創(chuàng)建ImageContainer,設(shè)置回調(diào)imageviewImageListener
    b. 通知ImageView設(shè)置默認(rèn)的Bitmap
  3. 創(chuàng)建ImageRequest
  4. cachekey保存在mInFlightRequests中,valueBatchedImageRequest
1.2.2 RequestQueue的add方法

添加requestrequestqueue,如果request不可緩存,則添加到mNetworkQueueNetworkDispatcher線程執(zhí)行網(wǎng)絡(luò)調(diào)度;
否則添加到由添加mCacheQueueCacheDispatcher調(diào)度,如果緩存為空或者過(guò)期則重新發(fā)送到mNetworkQueue

1.2.3 Other

BasicNetWork交給HttpStack負(fù)責(zé)網(wǎng)絡(luò)請(qǐng)求相關(guān);
ExecutorDelivery通過(guò)引用線程的Handler根據(jù)response的結(jié)果分發(fā)給對(duì)應(yīng)的request;
ImageLoader創(chuàng)建ImageRequest時(shí),為其設(shè)置了Response.Listener監(jiān)聽(tīng)實(shí)現(xiàn);
ImageRequest將結(jié)果發(fā)送給所有其mBatchedResponses持有的所有BatchedImageRequest;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容