Bot Bot - 2 months ago 38
Android Question

What is the Maximum Size of the Volley-Library Request-Queue

I am using

Volley
library in Android, I want to know what is maximum size of queue is allowed using
Volley
library. There is nothing I found related to this. As I know you need to add the network request to the queue but I don't know what is maximum size of this that I can put it on queue parallel.

RequestQueue requestQueue = Volley.newRequestQueue(this);
.... // block of code
requestQueue.add(jsonObjectRequest);

Answer

You are probably confusing 2 things:

  • wating queue size
  • max parallel network requests

For waiting queue size:

/** The queue of requests that are actually going out to the network. */
private final PriorityBlockingQueue<Request<?>> mNetworkQueue =
    new PriorityBlockingQueue<Request<?>>();

Volley uses a PriorityBlockingQueue which itself uses a PriorityQueue with a default capacity of 11.

private static final int DEFAULT_INITIAL_CAPACITY = 11;
...
public PriorityQueue() {
    this(DEFAULT_INITIAL_CAPACITY, null);
}

For max parallel network requests:

RequestQueue requestQueue = Volley.newRequestQueue(this);

will call

RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network);

and this calls

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

and DEFAULT_NETWORK_THREAD_POOL_SIZE is

private static final int DEFAULT_NETWORK_THREAD_POOL_SIZE = 4;

So by default there are 4 concurrent threads handling the requests (so max 4 request at the same time).


tl;dr

Wating queue size 11 and cannot be changed; while max parallel network requests are 4, which can be changed with the RequestQueue constructor.