在上一节,Cache的主要方法分析完后,我们就看看Volley是如何使用Cache的。
1、开启Cache选项
request.setShouldCache(true);
2、添加Request到队列,Volley先判断是否使用缓存,使用就添加到缓存队列,不使用就添加到工作队列(RequestQueue.class)
public <T> Request<T> add(Request<T> request) {
request.setRequestQueue(this);
Set var2 = this.mCurrentRequests;
synchronized(this.mCurrentRequests) {
this.mCurrentRequests.add(request);
}
request.setSequence(this.getSequenceNumber());
request.addMarker("add-to-queue");
//判断是否使用缓存
if(!request.shouldCache()) {
//不使用,添加到工作队列
this.mNetworkQueue.add(request);
return request;
} else {
Map var8 = this.mWaitingRequests;
synchronized(this.mWaitingRequests) {
String cacheKey = request.getCacheKey();
//判断等待队列中是否有相同url的请求
if(this.mWaiti