1.1 Android volley通過網(wǎng)絡(luò)請求圖片流程
1.2.1 ImageLoader的get方法
- 首先
ImageCache
緩存中查找 - 緩存不存在則
a. 創(chuàng)建ImageContainer
,設(shè)置回調(diào)imageview
的ImageListener
b. 通知ImageView
設(shè)置默認的Bitmap
- 創(chuàng)建
ImageRequest
- 以
cachekey
保存在mInFlightRequests
中丈莺,value
為BatchedImageRequest
1.2.2 RequestQueue的add方法
添加request
到requestqueue
钩骇,如果request
不可緩存熏瞄,則添加到mNetworkQueue
由NetworkDispatcher
線程執(zhí)行網(wǎng)絡(luò)調(diào)度;
否則添加到由添加mCacheQueue
由CacheDispatcher
調(diào)度反番,如果緩存為空或者過期則重新發(fā)送到mNetworkQueue
;
1.2.3 Other
BasicNetWork
交給HttpStack
負責網(wǎng)絡(luò)請求相關(guān);
ExecutorDelivery
通過引用線程的Handler
根據(jù)response
的結(jié)果分發(fā)給對應(yīng)的request
;
ImageLoader
創(chuàng)建ImageRequest
時耍群,為其設(shè)置了Response.Listener
監(jiān)聽實現(xiàn)义桂;
ImageRequest
將結(jié)果發(fā)送給所有其mBatchedResponses
持有的所有BatchedImageRequest
;