1.1 Android volley通过网络请求图片流程
1.2.1 ImageLoader的get方法
- 首先
ImageCache
缓存中查找 - 缓存不存在则
a. 创建ImageContainer
,设置回调imageview
的ImageListener
b. 通知ImageView
设置默认的Bitmap
- 创建
ImageRequest
- 以
cachekey
保存在mInFlightRequests
中,value
为BatchedImageRequest
1.2.2 RequestQueue的add方法
添加request
到requestqueue
,如果request
不可缓存,则添加到mNetworkQueue
由NetworkDispatcher
线程执行网络调度;
否则添加到由添加mCacheQueue
由CacheDispatcher
调度,如果缓存为空或者过期则重新发送到mNetworkQueue
;
1.2.3 Other
BasicNetWork
交给HttpStack
负责网络请求相关;
ExecutorDelivery
通过引用线程的Handler
根据response
的结果分发给对应的request
;
ImageLoader
创建ImageRequest
时,为其设置了Response.Listener
监听实现;
ImageRequest
将结果发送给所有其mBatchedResponses
持有的所有BatchedImageRequest
;