if your application terminates before a response, it causes a connection timeout. You must also add the connection timeout to volley and repeat the policy. Here is an example
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, request, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { } }, new VolleyErrorListener(this, AuthController.LOGIN_ERROR)) { @Override public Map<String, String> getHeaders() throws AuthFailureError { return new VolleyHeader().getHeaders(); } }; jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy( 50000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); NetworkRequestQueue.getInstance(mContext).getRequestQueue().add(jsonObjectRequest);
The NetworkRequestQueue class is as follows:
public class NetworkRequestQueue { private static NetworkRequestQueue mInstance; private static Context mCtx; private RequestQueue mRequestQueue; private ImageLoader mImageLoader; private NetworkRequestQueue(Context context) { mCtx = context; mRequestQueue = getRequestQueue(); mImageLoader = new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> cache = new LruCache<String, Bitmap>(20); @Override public Bitmap getBitmap(String url) { return cache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { cache.put(url, bitmap); } }); } public static synchronized NetworkRequestQueue getInstance(Context context) { if (mInstance == null) { mInstance = new NetworkRequestQueue(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);
}
Chandan Bhandari Dec 22 '17 at 6:56 2017-12-22 06:56
source share