我在Android中使用Volley
库,我想知道使用Volley
库允许的最大队列大小是多少。我发现没有任何与此相关的内容。据我所知,您需要将网络请求添加到队列中,但我不知道这可以将其放在队列并行上的最大大小。
RequestQueue requestQueue = Volley.newRequestQueue(this);
.... // block of code
requestQueue.add(jsonObjectRequest);
答案 0 :(得分:25)
你可能会混淆两件事:
等待队列大小:
/** The queue of requests that are actually going out to the network. */
private final PriorityBlockingQueue<Request<?>> mNetworkQueue =
new PriorityBlockingQueue<Request<?>>();
Volley使用PriorityBlockingQueue,它本身使用的PriorityQueue初始容量为11,但会自动增长,所以应该没有合理的限制。
private static final int DEFAULT_INITIAL_CAPACITY = 11;
...
public PriorityQueue() {
this(DEFAULT_INITIAL_CAPACITY, null);
}
对于最大并行网络请求:
RequestQueue requestQueue = Volley.newRequestQueue(this);
将致电
RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network);
然后调用
public RequestQueue(Cache cache, Network network) {
this(cache, network, DEFAULT_NETWORK_THREAD_POOL_SIZE);
}
和DEFAULT_NETWORK_THREAD_POOL_SIZE
是
private static final int DEFAULT_NETWORK_THREAD_POOL_SIZE = 4;
因此,默认情况下有4个并发线程处理请求(因此同时最多4个请求)。
等待队列大小为Integer.MAX
即。基本无限;最大并行网络请求数为4,可以使用RequestQueue构造函数进行更改。