12

我在DefaultRetryPolicy中将 1500 设置为initialTimeoutMs ,如下所示,但它不考虑超时:

request.setRetryPolicy(new DefaultRetryPolicy(1500
        , DefaultRetryPolicy.DEFAULT_MAX_RETRIES
        , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

我断开了设备上的 WiFi 以测试它是否超时,我在Logcat中看到了这些时间:

2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError

我预计在 1.5 秒后捕获 onResponse 或 onError 花了 20 多秒!!!

4

2 回答 2

3

根据你的配置。你的超时时间应该是 3 秒。参考http://prasadthangavel.blogspot.com/2013/12/why-volley-android-has-provided-two.html

我认为您应该将 DEFAULT_BACKOFF_MULT 设为零。

于 2020-01-10T01:55:47.087 回答
0

使用 5 秒,因为 15 秒用于超时。

int TIME_OUT = 500; //use 5 sec it will work fine with it..

request.setRetryPolicy(new DefaultRetryPolicy(
    TIME_OUT, 
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
于 2020-01-11T05:28:55.960 回答