it may be a simple question but i tested it in actual code and unable to judge the correct behavior of setRetryPolicy() function of Volley. Anyone please tell me the correct position of this statement to be written. Is retry policy written in onErrorResponse() function or before entering the request into the queue? Here is my code for bitmap image. i want 3 retries of 20 seconds after request timeout. please suggest me the correct place of retry policy to be written and have I set the retry policy correct according to my need?
ImageRequest ir = new ImageRequest(url, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
iv.setImageBitmap(response);
}
}, 0, 0, null, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
ir.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}
});
mRequestQueue.add(ir);
Add the retry policy once you have declared and initialized the Request object. It's okay to add the policy anywhere before adding your request to the Volley queue.
Another note: The onErrorResponse() callback function is used to handle errors generated from Volley. At this point, your request is already dispatched and got some networking error. Otherwise, your code would not reach this callback function. So, it's pointless to add the retry policy inside this function.