Question

I .add( new network calls to my Volley Request Queue which I have created as a singleton as suggested. But I always immediately .start() these network calls. This is always done as an action in an activity or a fragment.

The add method cannot even be chained into a start method, like .add(new volley request).start()

So this assumes I am actually managing (or wanting to manage) a network queue somewhere, outside of the way Volley handles its queue, I guess. Should I be sending these things to an IntentService and listening for the IntentService to send a response back to my Fragment/Activity?

Was it helpful?

Solution 2

As a volley user I can tell you that I have never called .start() method. all the requests i've added to the queue started automatically, I used singleton class like you did.

OTHER TIPS

If you create a requestQueue as:

requestQueue = Volley.newRequestQueue(mAppContext);

you will not need start().

According to docs of Volley.RequestQueue : "Creates a default instance of the worker pool and calls RequestQueue.start() on it."

Hence you can see why you never needed to call start() yourself.

However, if you create a requestQueue as (as shown in the official reference):

RequestQueue mRequestQueue;

// Instantiate the cache
Cache cache = new DiskBasedCache(getCacheDir(), 1024 * 1024); // 1MB cap

// Set up the network to use HttpURLConnection as the HTTP client.
Network network = new BasicNetwork(new HurlStack());

// Instantiate the RequestQueue with the cache and network.
mRequestQueue = new RequestQueue(cache, network);

// Start the queue
mRequestQueue.start();

start() will have to be called.

PS: I get the documentation as provided in the source code itself. IDEs are able to extract them effortlessly. I just hover over the method/class name whose document I need and press CTRL (in android-studio).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top