Для обработки Android Volley Timeout вам нужно использовать RetryPolicy
RetryPolicy
Volley provides an easy way to implement your RetryPolicy for your requests.
Volley sets default Socket & ConnectionTImeout to 5 secs for all requests.
RetryPolicy - это интерфейс, в котором вам нужно реализовать свою логику того, как вы хотите повторить конкретный запрос в случае тайм-аута.
Имеет дело с этими тремя параметрами
Timeout - Specifies Socket Timeout in millis per every retry attempt.
Number Of Retries - Number of times retry is attempted.
Back Off Multiplier - A multiplier which is used to determine exponential time set to socket for every retry attempt.
Например Если RetryPolicy создан с этими значениями
Timeout - 3000 ms, Num of Retry Attempts - 2, Back Off Multiplier - 2.0
Попытка повтора 1:
time = time + (time * Back Off Multiplier);
time = 3000 + 6000 = 9000ms
Socket Timeout = time;
Request dispatched with Socket Timeout of 9 Secs
Попытка повтора 2:
time = time + (time * Back Off Multiplier);
time = 9000 + 18000 = 27000ms
Socket Timeout = time;
Request dispatched with Socket Timeout of 27 Secs
Таким образом, в конце попытки повторной попытки 2, если все еще случается тайм-аут сокета, Volley сгенерирует ошибку TimeoutError в вашем обработчике ответа ошибки интерфейса пользователя.
//Set a retry policy in case of SocketTimeout & ConnectionTimeout Exceptions.
//Volley does retry for you if you have specified the policy.
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));