1.1 Android volley通过网络请求图片流程

VolleyRequestImage
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;