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

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

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)度,如果緩存為空或者過期則重新發(fā)送到mNetworkQueue

1.2.3 Other

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容