use*_*780 2 android android-volley
它可能是一个简单的问题,但我在实际代码中测试它,无法判断Volley的setRetryPolicy()函数的正确行为.任何人请告诉我这份声明的正确立场.是在onErrorResponse()函数中写入重试策略还是在将请求输入队列之前?这是我的位图图像代码.我想在请求超时后重试20秒3次.请建议我写正确的重试政策的地方,并根据我的需要设置重试政策是否正确?
ImageRequest ir = new ImageRequest(url, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
iv.setImageBitmap(response);
}
}, 0, 0, null, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
ir.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}
});
mRequestQueue.add(ir);
Run Code Online (Sandbox Code Playgroud)
声明并初始化Request对象后,添加重试策略.在将请求添加到Volley队列之前,可以在任何地方添加策略.
ImageRequest ir = new ImageRequest(url, new Response.Listener() {
@Override
public void onResponse(Bitmap response) {
iv.setImageBitmap(response);
}
}, 0, 0, null, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Handle errors related to Volley such as networking issues, etc
}
});
ir.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
mRequestQueue.add(ir);
Run Code Online (Sandbox Code Playgroud)
另一个注意事项:onErrorResponse()回调函数用于处理Volley生成的错误.此时,您的请求已被分派并出现一些网络错误.否则,您的代码将无法访问此回调函数.因此,在此函数中添加重试策略是没有意义的.
| 归档时间: |
|
| 查看次数: |
5838 次 |
| 最近记录: |