Volley框架的流程图分析
来源:互联网 发布:windows vista开机视频 编辑:程序博客网 时间:2024/04/23 15:46
Volley框架的流程图分析
接着上一篇Volley框架的使用,这一篇主要主要讲Volley框架运作的原理。主要使用流程图来叙述,简单的分析了整个流程的过程,具体的请参考源代码或者查看我上一篇在文章末尾添上的链接。
一、Volley的准备
生成一个RequestQueue的队列。
二、用户添加Request
三、阻塞线程
(1)缓存队列处理器
(2)网络请求处理器
四、数据分发器
作为网络回应的处理器
五、总结
1. 当一个RequestQueue被成功申请后会开启一个CacheDispatcher(缓存调度器)和4个(默认)NetworkDispatcher(网络请求调度器);
2. CacheDispatcher缓存调度器最为第一层缓冲,开始工作后阻塞的从缓存序列mCacheQueue中取得请求:
a. 对于已经取消了的请求,直接标记为跳过并结束这个请求
b. 全新或过期的请求,直接丢入mNetworkQueue中交由N个NetworkDispatcher进行处理
c. 已获得缓存信息(网络应答)却没有过期的请求,交由Request的parseNetworkResponse进行解析,从而确定此应答是否成功。然后将请求和应答交由Delivery分发者进行处理,如果需要更新缓存那么该请求还会被放入mNetworkQueue中
3. 用户将请求Request add到RequestQueue之后:
a. 对于不需要缓存的请求(需要额外设置,默认是需要缓存)直接丢入mNetworkQueue交由N个NetworkDispatcher处理;
b. 对于需要缓存的,全新的请求加入到mCacheQueue中给CacheDispatcher处理
c. 需要缓存,但是缓存列表中已经存在了相同URL的请求,放在mWaitingQueue中做暂时雪藏,待之前的请求完毕后,再重新添加到mCacheQueue中;
4. 网络请求调度器NetworkDispatcher作为网络请求真实发生的地方,对消息交给BasicNetwork进行处理,同样的,请求和结果都交由Delivery分发者进行处理;
5. Delivery分发者实际上已经是对网络请求处理的最后一层了,在Delivery对请求处理之前,Request已经对网络应答进行过解析,此时应答成功与否已经设定。而后Delivery根据请求所获得的应答情况做不同处理:
a. 若应答成功,则触发deliverResponse方法,最终会触发开发者为Request设定的Listener
b. 若应答失败,则触发deliverError方法,最终会触发开发者为Request设定的ErrorListener
处理完后,一个Request的生命周期就结束了,Delivery会调用Request的finish操作,将其从mRequestQueue中移除,与此同时,如果等待列表中存在相同URL的请求,则会将剩余的层级请求全部丢入mCacheQueue交由CacheDispatcher进行处理。
- Volley框架的流程图分析
- Volley框架的流程图分析
- Volley框架的流程图分析
- Volley框架的错误重试机制分析
- Volley框架分析
- Volley框架分析
- Volley框架深入分析
- Volley框架源码分析
- Volley框架(五):Volley源码分析
- Dreamvc框架的流程图
- Volley框架核心源码分析
- 网络框架Volley原理分析
- Android-Volley框架原理分析
- Volley网络请求框架分析
- 网络框架Volley原理分析
- android-----Volley框架源码分析
- android-----Volley框架源码分析
- 网络框架Volley原理分析
- MySQL外键约束的开启与关闭
- Python字典的两道题目0330
- WebAPP的mate标签
- Oracle 的随机数、随机日期和时间、随机字符串
- 安卓SDK更新之hosts文件
- Volley框架的流程图分析
- 开发LBS应用之 根据一点的经纬度实现附近点的查询 - geohash
- oc构造方法
- 很牛的语文老师,很牛的分享!
- IOS成长之路-使用系统默认声音、震动
- Oracle更新多行
- 动态规划之多边形游戏
- AIX系统下查看磁盘阵列
- 彻底颠覆了空调行业的传统观念“打造”云服务