[英]Volley Request Retry not working as expected
我已經關注了VolleyRequest
但是在出現錯誤(例如,請求時突然沒有網絡)時,重試不會重試該請求。
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
};
Request myReq = new Request(Request.Method.POST, url, errorListener) {
@Override
protected Response parseNetworkResponse(NetworkResponse response) {}
@Override
protected void deliverResponse(Object response) {}
@Override
public Map<String, String> getParams() throws AuthFailureError {
return null;
}
};
myReq.setRetryPolicy(new DefaultRetryPolicy(Constants.DEFAULT_CONNECTION_TIMEOUT,
10,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(myReq);
我有什么想念的嗎?
public static <T> void request(Context context, final VolleyCallback<T> requestCallback, int requestMethod, String requestUrl, Object postObject, Class<T> classType, boolean isAuthenticated, String tag) {
GsonRequest<T> request = new GsonRequest<>(
context,
requestMethod,
requestUrl,
new Gson().toJson(postObject),
classType,
isAuthenticated,
new Response.Listener<T>() {
@Override
public void onResponse(T response) {
onResponseListener(response, requestCallback);
}
},
onErrorListener(context, requestCallback)
);
request.setTag(tag);
VolleyRequestQueue.getInstance(context).addToRequestQueue(request);
}
public <T> void addToRequestQueue(Request<T> request) {
request.setRetryPolicy(new DefaultRetryPolicy(PrjConfig.REQUEST_TIMEOUT_MILLIS, PrjConfig.REQUEST_RETRIES, PrjConfig.REQUEST_TIMEOUT_MULTIPLIER));
request.setShouldCache(false);
getRequestQueue().add(request);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.