Ustawiłem 1500 jako initialTimeoutMs w DefaultRetryPolicy jak poniżej, ale nie uwzględnia limitu czasu:
request.setRetryPolicy(new DefaultRetryPolicy(1500
, DefaultRetryPolicy.DEFAULT_MAX_RETRIES
, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Odłączyłem Wi-Fi na moim urządzeniu, aby przetestować limit czasu i zobaczyłem te czasy w Logcat :
2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError
Zajęło mi to więcej niż 20 sekund, podczas gdy spodziewałem się złapać albo onResponse, albo onError po 1,5 sekundy !!!
java
android
android-volley
request-timed-out
retrypolicy
Alireza Noorali
źródło
źródło
public static final int DEFAULT_MAX_RETRIES = 1;
public static final float DEFAULT_BACKOFF_MULT = 1f;
Odpowiedzi:
Zgodnie z twoją konfiguracją. Twój limit czasu powinien wynosić 3 sekundy. Odnosząc się do http://prasadthangavel.blogspot.com/2013/12/why-volley-android-has-provided-two.html
Myślę, że powinieneś ustawić DEFAULT_BACKOFF_MULT na zero.
źródło
Użyj 5 sekund, ponieważ 15 sekund to znacznie więcej, aby dać czas oczekiwania.
źródło