Volley中没有指定的方法来设置请求超时时间,可以设置RetryPolicy 来变通实现。DefaultRetryPolicy类有个initialTimeout参数,可以设置超时时间。要确保最大重试次数为0,以保证超时后不重新请求。
为确保请求失败后不重新请求问题,我们可以针对volley这样设置:
req.setRetryPolicy(new DefaultRetryPolicy(Constants.CUD_SOCKET_TIMEOUT,
Constants.MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
JsonObjectRequest req = new JsonObjectRequest(Method.GET,
JSONDataUrl,
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
//重试不请求
req.setRetryPolicy(new DefaultRetryPolicy(Constants.CUD_SOCKET_TIMEOUT,
Constants.MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
//增、删、改等操作超时时间
public static final int CUD_SOCKET_TIMEOUT = 10000;
//查询超时时间
public static final int R_SOCKET_TIMEOUT = 5000;
//最大重试请求次数
public static final int MAX_RETRIES = 0;