Android 截击,ImageLoader.ImageListener中的onResponse调用了多少次
我正在使用Android 截击,ImageLoader.ImageListener中的onResponse调用了多少次,android,android-intent,android-volley,Android,Android Intent,Android Volley,我正在使用截击进行互联网请求。我认为当收到响应时,onResponse方法应该只调用一次,但我发现它调用了两次 这是我的密码: YVolley.getInstance(context).getImageLoader().get(category.child.get(i).icon, new ImageLoader.ImageListener() { @Override public void onResponse(ImageLoad
截击
进行互联网请求。我认为当收到响应时,onResponse
方法应该只调用一次,但我发现它调用了两次
这是我的密码:
YVolley.getInstance(context).getImageLoader().get(category.child.get(i).icon, new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
Drawable drawable = new BitmapDrawable(context.getResources(), response.getBitmap());
drawable.setBounds(0, 0, GeneralUtil.dip2px(context, 45), GeneralUtil.dip2px(context, 45));
button.setCompoundDrawables(null, drawable, null, null);
Log.i("swifter", "get icon ... success == "+url);
}
@Override
public void onErrorResponse(VolleyError error) {
Log.i("swifter", "get drawable icon error...");
}
});
“成功”日志打印两次
我的代码是否有问题,或者应该是这样的?我在中找到了答案。文件规定: 调用流程如下所示:
onResponse(response,true)
将被调用以反映任何已可用的缓存数据。如果数据可用,response.getBitmap()
将不为空
将在加载映像时调用,或者onResponse(response,false)
- 如果加载图像时出错,将调用
onErrorResponse
将被调用,您可以从onresponse(response,true)
获取图像response.getBitmap()
- 首先,将调用onRespsonse(response,true),并且
将为response.getBitmap()
null
- 然后,将调用
,您可以从onRespsonse(response,false)
获取图像response.getBitmap()
- 首先,将调用onRespsonse(response,true),并且
将为response.getBitmap()
null
- 然后,将调用
,可以从onErrorResponse(error)
中找到错误的详细信息(这将是error
的一个实例)VolleyError
在您的情况下,以下代码段将帮助您跳过第一个“空”响应:
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
// skip cache failure
if (isImmediate && response.getBitmap() == null) return;
// ...
}
希望这有助于澄清为什么您的请求可能会得到两个响应。第一个响应可能来自缓存请求