Volley源码解析<四> RequestQueue请求队列

本文深入解析了Volley的RequestQueue结构,包括构造方法、数据存储、启动调度线程以及请求添加流程。RequestQueue负责分发请求,使用CacheDispatcher处理缓存,NetworkDispatcher处理网络请求。此外,还介绍了ResponseDelivery用于派发结果,以及如何通过ExecutorDelivery回调主线程更新UI。
摘要由CSDN通过智能技术生成

Volley源码解析<四> RequestQueue请求队列

@[Volley, 核心, RequestQueue]

声明:转载请注明出处,知识有限,如有错误,请多多交流指正!

RequestQueue结构

RequestQueue类

1. 构造方法

RequestQueue是请求队列,负责分发请求,取缓存或读网络,所以其构造函数中需要一个Cache对象和一个Network对象,还有一个ResponseDelivery对象用于派发结果


 public RequestQueue(Cache cache, Network network) {
        this(cache, network, DEFAULT_NETWORK_THREAD_POOL_SIZE);
 }

public RequestQueue(Cache cache, Network network, int threadPoolSize) {
        //传递一个与主线程的Looper关联的一个Handler
        this(cache, network, threadPoolSize, new ExecutorDelivery(new Handler(Looper.getMainLooper())));
}

public RequestQueue(Cache cache, Network network, int threadPoolSize, ResponseDelivery delivery) {
        mCache = cache;
        mNetwork = network;
        mDispatchers = new NetworkDispatcher[threadPoolSize];
        mDelivery = delivery;
    }

其中

mCache : 缓存数据
mNetwork :网络请求
mDispatchers :网络请求调度线程(默认开启4个)
mDelivery :分发响应解析后的数据对象
ExecutorDelivery:结果回调监听分发,请求数据解析后,通过此类回调给调用者,传递一个与主线程的Looper关联的一个Handler,这样做的好处就是调用者可以在回调中更新UI

2. 存储数据集合<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值