在Android:Volley框架分析(一)——请求准备并发出的操作步骤中,我们了解了一个请求发出去的步骤,这一节我们就来看看请求队列的事。
requestQueue.add(request);
通过上面的代码,一个请求就被加入到Volley的请求队列,请求将被逐个执行。
先来看看请求队列的内部的几个属性。
mCurrentRequests:当前这个队列里面所有的请求集合(包括等待中的和正在执行的,工作队列中的和缓存队列中的)。
mCacheQueue:缓存队列(Volley的缓存机制)
mNetworkQueue:工作队列,真正会被发出去的请求存放于此
mWaitingRequests:这是一个Map对象,Volley会使用request的Url做为key值,对应一个Queue对象,Queue里面存储key值(即url)一样的request请求。当reqeust设置为从缓存中获取时,就会使用这个对象了
下面看看Add代码。
public <T> Request<T> add(Request<T> request) {
//request传入Queue对象
request.setRequestQueue(this);
Set var2 = this.mCurrentRequests;
//将request对象添加到上面提到的集合属性中
synchronized(this.mCurrentRequests) {
this.mCurrentRequests.