私はvolleyのリトライポリシーを設定しました。タイムアウト時間に達していないにもかかわらず、クエリが2回送信されています。タイムアウト時間に達する前にVolley RetryPolicyを2回クエリします
StringRequest stringRequest = new StringRequest(method, currentURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
S.L("response: " + currentURL);
listener.onRequestExecuted("response", response, downloadId);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("CCC", "Error " + error.toString());
}
})
これはSOこれに関連する別のquestionがあった上で、以前の
stringRequest.setRetryPolicy(new RetryPolicy() {
@Override
public int getCurrentTimeout() {
return 8000;
}
@Override
public int getCurrentRetryCount() {
return 1;
}
@Override
public void retry(VolleyError error) throws VolleyError {
S.L("Retry error: " + error);
}
});
再試行方針でした。タイムアウト時間に達していないにもかかわらず、ボレーが低速接続を検出したときにそうなるようです。ここでは解決策は、異なる再試行ポリシーを使用していた:
stringRequest.setRetryPolicy(new DefaultRetryPolicy(8000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
これが働いており、なぜ再試行の政策との動作の違いがあるのタイムアウト期間に
を唯一の単一のクエリを送信していますか?