<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>android volley blocking request Archives - Truiton</title>
	<atom:link href="https://www.truiton.com/tag/android-volley-blocking-request/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Technology Reaching Us In Time - Online</description>
	<lastBuildDate>Thu, 21 Nov 2019 11:52:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/www.truiton.com/wp-content/uploads/2022/11/cropped-truiton_new_logo_half_white.png?fit=32%2C32&#038;ssl=1</url>
	<title>android volley blocking request Archives - Truiton</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">54534495</site>	<item>
		<title>Android Volley &#124; Making A Synchronous Request</title>
		<link>https://www.truiton.com/2015/02/android-volley-making-synchronous-request/</link>
					<comments>https://www.truiton.com/2015/02/android-volley-making-synchronous-request/#comments</comments>
		
		<dc:creator><![CDATA[Mohit Gupt]]></dc:creator>
		<pubDate>Mon, 09 Feb 2015 17:21:21 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android volley blocking request]]></category>
		<category><![CDATA[Custom Volley RequestQueue]]></category>
		<guid isPermaLink="false">http://www.truiton.com/?p=808</guid>

					<description><![CDATA[<p>One of the newest frameworks in Android is Volley. This library was introduced to ease the process of making a REST web service call simpler. Usually the android volley library is used to make a request in background. For example, when a web service is called from an activity through volley library. A background worker&#8230;&#160;<a href="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/" rel="bookmark">Read More &#187;<span class="screen-reader-text">Android Volley &#124; Making A Synchronous Request</span></a></p>
<p>The post <a href="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/">Android Volley | Making A Synchronous Request</a> appeared first on <a href="https://www.truiton.com">Truiton</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter"><a href="https://www.flickr.com/photos/92026547@N05/15394003036/" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="640" height="424" data-attachment-id="809" data-permalink="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/android-volley-synchronous-request-featured/" data-orig-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Featured.jpg?fit=640%2C424&amp;ssl=1" data-orig-size="640,424" data-comments-opened="1" data-image-title="Android Volley Synchronous Request &amp;#8211; Featured" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Featured.jpg?fit=640%2C424&amp;ssl=1" src="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Featured.jpg?resize=640%2C424" alt="Photo Credit: jakedrzewiecki via Compfight cc" class="wp-image-809" srcset="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Featured.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Featured.jpg?resize=300%2C199&amp;ssl=1 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">One of the newest frameworks in Android is Volley. This library was introduced to ease the process of making a REST web service call simpler. Usually the android volley library is used to make a request in background. For example, when a web service is called from an activity through volley library. A background worker thread is spawned, and in that thread web API call is made. After which the result is captured and returned back to the activity i.e the main UI thread. But in this tutorial I would show you how to make an Android volley synchronous request. That is, the calling thread would wait until the result is returned from the worker thread.</p>



<p class="wp-block-paragraph">A point to note here is that, in any situation we should not do any sort of heavy work in the main thread. Also if you try to perform the below mentioned approach on the main thread of your app, you would get a TimeoutException. Therefore for making an android volley synchronous request I would spawn a thread and will make that thread wait until the response is captured.</p>



<p class="wp-block-paragraph">Android Volley library is available through open <a href="https://android.googlesource.com/platform/frameworks/volley" target="_blank" rel="noopener noreferrer">AOSP</a> repository. But as mentioned in this <a href="http://www.truiton.com/2015/02/android-volley-example/" target="_blank" rel="noopener noreferrer">tutorial</a>, there are two ways to include and use Volley.</p>



<h3 class="wp-block-heading">Gradle Dependency</h3>



<p class="wp-block-paragraph">Include a gradle dependency in your project’s build.gradle (app) file:</p>



<p class="lang:default decode:true wp-block-paragraph"><code>compile 'com.android.volley:volley:1.0.0'</code></p>



<p class="wp-block-paragraph"><em>or</em></p>



<h3 class="wp-block-heading">Library Project</h3>



<p class="wp-block-paragraph">Steps to <a title="Android Studio | How To Add A Library Project?" href="http://www.truiton.com/2015/02/android-studio-add-library-project/" target="_blank" rel="noopener noreferrer">include the Android Volley library in your project</a> are:</p>



<ol class="wp-block-list"><li>Clone the repo from this url: <pre class="lang:default decode:true"><code>git clone https://android.googlesource.com/platform/frameworks/volley</code></pre> <p>It can be done through any of the leading tools like Atlassian SourceTree, TortoiseGIT or through the GIT command line.</p> </li><li>In Android Studio goto File -> Import Module -> Specify the directory</li><li>Enter the module name- &#8220;:Volley&#8221; (for internal project reference), hit finish.</li><li>By now the gradle would start building the project. Let it complete.</li><li>Open build.gradle file for your app module</li><li>In dependencies block add a line <code>compile project(':Volley')</code></li><li>Go to Build menu -> Rebuild Project</li><li>You are done importing Android Volley to you project.</li></ol>



<p class="wp-block-paragraph">Before starting with the code don&#8217;t forget to add an internet permission in your android manifest:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="xml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;uses-permission android:name="android.permission.INTERNET"/></pre>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Custom Volley RequestQueue</h2>



<p class="wp-block-paragraph">To understand the basic working of volley, please have a look at my <a title="Android Volley Example" href="http://www.truiton.com/2015/02/android-volley-example/" target="_blank" rel="noopener noreferrer">Android Volley</a> tutorial. When using volley I prefer to use a single RequestQueue for my application, as it is easy to keep track of requests and responses throughout the app. Hence in this <a title="Android Volley | Making A Synchronous Request" href="http://www.truiton.com/2015/02/android-volley-making-synchronous-request/">Android Volley | Making A Synchronous Request</a> tutorial as-well I have customized the volley RequestQueue, by making it a singleton class. This way only one instance of volley RequestQueue would exist. Have a look at the code below:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">package com.truiton.volleyblockingrequest;

import android.content.Context;

import com.android.volley.Cache;
import com.android.volley.Network;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.BasicNetwork;
import com.android.volley.toolbox.DiskBasedCache;
import com.android.volley.toolbox.HurlStack;

public class CustomVolleyRequestQueue {

    private static CustomVolleyRequestQueue mInstance;
    private static Context mCtx;
    private RequestQueue mRequestQueue;

    private CustomVolleyRequestQueue(Context context) {
        mCtx = context;
        mRequestQueue = getRequestQueue();
    }

    public static synchronized CustomVolleyRequestQueue getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new CustomVolleyRequestQueue(context);
        }
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            Cache cache = new DiskBasedCache(mCtx.getCacheDir(), 10 * 1024 * 1024);
            Network network = new BasicNetwork(new HurlStack());
            mRequestQueue = new RequestQueue(cache, network);
            // Don't forget to start the volley request queue
            mRequestQueue.start();
        }
        return mRequestQueue;
    }
}</pre>



<p class="wp-block-paragraph">Although to make an Android Volley synchronous request, it is not necessary to customize the <code>RequestQueue</code>. As I mentioned above its just a good way of doing it. In the above class if you see closely, you would notice that cache limit for the request queue has also been increased. In standard vanilla implementation of volley, the limit of <code>DiskBasedCache</code> is of 5 MB, for this example I have raised to 10 MB. This would allow us to cache a larger amount of requests. You can define it accordingly, as per your requirement.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Can I do a synchronous request with volley?</h2>



<p class="wp-block-paragraph">The answer is YES, though Android Volley we can perform a synchronous or blocking request. But first lets define a layout where all this action would happen.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="xml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".VolleyBlockingRequestActivity"
                android:background="#FFFFFF">

    &lt;ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/truiton_short"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    &lt;Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send Request"
        android:id="@+id/button"
        android:layout_below="@+id/imageView"
        android:layout_alignLeft="@+id/imageView"
        android:layout_alignStart="@+id/imageView"
        android:layout_alignRight="@+id/imageView"
        android:layout_alignEnd="@+id/imageView" />

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:layout_below="@+id/button"
        android:layout_marginTop="26dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

&lt;/RelativeLayout>
</pre>



<p class="wp-block-paragraph">To make an actual Android Volley blocking request lets define the activity:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">package com.truiton.volleyblockingrequest;

import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.RequestFuture;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;


public class VolleyBlockingRequestActivity extends AppCompatActivity {
    public static final String REQUEST_TAG = "VolleyBlockingRequestActivity";
    private TextView mTextView;
    private Button mButton;
    private RequestQueue mQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_volley_blocking_request);

        mTextView = (TextView) findViewById(R.id.textView);
        mButton = (Button) findViewById(R.id.button);
    }

    @Override
    protected void onStart() {
        super.onStart();
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startParsingTask();
            }
        });
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (mQueue != null) {
            mQueue.cancelAll(REQUEST_TAG);
        }
    }

    public void startParsingTask() {
        Thread threadA = new Thread() {
            public void run() {
                ThreadB threadB = new ThreadB(getApplicationContext());
                JSONObject jsonObject = null;
                try {
                    jsonObject = threadB.execute().get(10, TimeUnit.SECONDS);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                } catch (TimeoutException e) {
                    e.printStackTrace();
                }
                final JSONObject receivedJSONObject = jsonObject;
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mTextView.setText("Response is: " + receivedJSONObject);
                        if (receivedJSONObject != null) {
                            try {
                                mTextView.setText(mTextView.getText() + "\n\n" +
                                        receivedJSONObject.getString("name"));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });
            }
        };
        threadA.start();
    }

    private class ThreadB extends AsyncTask&lt;Void, Void, JSONObject&gt; {
        private Context mContext;

        public ThreadB(Context ctx) {
            mContext = ctx;
        }

        @Override
        protected JSONObject doInBackground(Void... params) {
            final RequestFuture&lt;JSONObject&gt; futureRequest = RequestFuture.newFuture();
            mQueue = CustomVolleyRequestQueue.getInstance(mContext.getApplicationContext())
                    .getRequestQueue();
            String url = "http://api.openweathermap.org/data/2.5/weather?q=London,uk";
            final JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method
                    .GET, url,
                    new JSONObject(), futureRequest, futureRequest);
            jsonRequest.setTag(REQUEST_TAG);
            mQueue.add(jsonRequest);
            try {
                return futureRequest.get(10, TimeUnit.SECONDS);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            } catch (TimeoutException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
}
</pre>



<p class="wp-block-paragraph">In the above class I have started a standard java thread, on click of a button. This is the entry point of making a blocking request through volley. Since Android has a guideline that you can&#8217;t make network calls on main thread, it throws a network on main thread exception. I had to spawn a new thread, to make an environment where this synchronous type of request would actually come in use.</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;">Please Note</span> : <em>In normal situations you should not be making this type of request.</em></p>



<p class="wp-block-paragraph">After spawning a new thread called <code>ThreadA</code>, I started an AsyncTask (<code>ThreadB</code>) so that this can be put into waiting state, by calling <code>get(long, TimeUnit)</code> method of RequestFuture class. A volley class used for blocking requests. To access the <code>get()</code> method and make an Android Volley synchronous request, you need to use the <code>RequestFuture</code> class instead of standard <code>StringRequest</code> or <code>JsonObjectRequest</code> class. This&nbsp;<code>RequestFuture</code> class also implements both&nbsp;<code>Response.Listener</code> and&nbsp;<code>Response.ErrorListener</code> interfaces. Therefore it can be used as a listener as-well while making a request. The <code>RequestFuture.get(long, TimeUnit)</code> method returns the result immediately, as internally it calls the <code>doGet(long)</code> method, in a synchronized way. Hence instead of receiving the result back in <code>onResponse(T response)</code> method, we are actually waiting till the response is captured.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" decoding="async" width="500" height="376" data-attachment-id="813" data-permalink="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/android-volley-synchronous-request-diagram/" data-orig-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Diagram.png?fit=500%2C376&amp;ssl=1" data-orig-size="500,376" data-comments-opened="1" data-image-title="Android Volley Synchronous Request Diagram" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Diagram.png?fit=500%2C376&amp;ssl=1" src="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Diagram.png?resize=500%2C376" alt="Android Volley Synchronous Request Diagram" class="wp-image-813" srcset="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Diagram.png?w=500&amp;ssl=1 500w, https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request-Diagram.png?resize=300%2C226&amp;ssl=1 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure></div>



<p class="wp-block-paragraph">Now since our AsyncTask (<code>ThreadB</code>) was also started in a blocking way by calling <a title="AsyncTask Get" href="http://developer.android.com/reference/android/os/AsyncTask.html#get%28long,%20java.util.concurrent.TimeUnit%29" target="_blank" rel="noopener noreferrer">AsyncTask.get (long timeout, TimeUnit unit)</a> method from <code>ThreadA</code>. Apparently <code>ThreadA</code> is also blocked at the moment. This is the key reason this cant be done on the main thread of your app. I tried doing it in the main thread and was not able to do it, as it used to throw a TimeoutException.</p>



<p class="wp-block-paragraph">After completing the code, the screen should look something like the screenshot below:</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" decoding="async" width="480" height="842" data-attachment-id="811" data-permalink="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/android-volley-synchronous-request/" data-orig-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request.png?fit=480%2C842&amp;ssl=1" data-orig-size="480,842" data-comments-opened="1" data-image-title="Android Volley Synchronous Request" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request.png?fit=480%2C842&amp;ssl=1" src="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request.png?resize=480%2C842" alt="Android Volley Synchronous Request" class="wp-image-811" srcset="https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request.png?w=480&amp;ssl=1 480w, https://i0.wp.com/www.truiton.com/wp-content/uploads/2015/02/Android-Volley-Synchronous-Request.png?resize=171%2C300&amp;ssl=1 171w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">To understand the example better, please have a look at the full source code below:</p>



<p class="wp-block-paragraph" style="text-align:center"><a class="fasc-button fasc-size-large fasc-type-flat fasc-rounded-medium ico-fa fasc-ico-before fa-github" style="background-color: #0364af; color: #ffffff;" target="_blank" rel="noopener noreferrer" href="https://github.com/Truiton/VolleyBlockingRequest">Full Source Code</a></p>



<p class="wp-block-paragraph">With this I would like to conclude my tutorial on <a title="Android Volley | Making A Synchronous Request" href="http://www.truiton.com/2015/02/android-volley-making-synchronous-request/">how to make a blocking request with Android volley</a>. If this tutorial helped you share it with your friends, also please like our Facebook, Google+ page.</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='Mohit Gupt' src='https://secure.gravatar.com/avatar/a816092ad56645d2635ccfceb9f7e9d44821c19dec126cb394c882ba574eaa04?s=100&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a816092ad56645d2635ccfceb9f7e9d44821c19dec126cb394c882ba574eaa04?s=200&#038;d=mm&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a href="https://www.truiton.com/author/mohitgupt/" class="vcard author" rel="author"><span class="fn">Mohit Gupt</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Born in New Delhi, India. A software engineer by profession, an android enthusiast and mobile development evangelist. My motive here is to create a group of skilled engineers, who can build better software. Reason being programming is my passion, and also it feels good to make a device do something you want. Professionally I have worked with many software engineering and product development firms. As of now too, I am employed as a senior engineer in a leading tech company. In total I may have worked on more than 20 projects professionally, but whenever I get spare time I share my thoughts here at Truiton.</p>
</div></div><div class="saboxplugin-web "><a href="http://www.truiton.com" target="_self" >www.truiton.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Wordpress" target="_blank" href="https://www.truiton.com/author/mohitgupt/" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-wordpress" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="currentColor" d="M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"></path></svg></span></a><a title="Twitter" target="_blank" href="http://twitter.com/mohitgupt" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 30 30"><path d="M26.37,26l-8.795-12.822l0.015,0.012L25.52,4h-2.65l-6.46,7.48L11.28,4H4.33l8.211,11.971L12.54,15.97L3.88,26h2.65 l7.182-8.322L19.42,26H26.37z M10.23,6l12.34,18h-2.1L8.12,6H10.23z" /></svg></span></a><a title="Facebook" target="_blank" href="https://www.facebook.com/Mr.Mohit.Gupt" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-facebook" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 264 512"><path fill="currentColor" d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"></path></svg></span></a></div></div></div><p>The post <a href="https://www.truiton.com/2015/02/android-volley-making-synchronous-request/">Android Volley | Making A Synchronous Request</a> appeared first on <a href="https://www.truiton.com">Truiton</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.truiton.com/2015/02/android-volley-making-synchronous-request/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">808</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Minified using Disk

Served from: www.truiton.com @ 2026-07-08 13:33:54 by W3 Total Cache
-->