Volley 中是否有回调来通知已完成的网络调用,例如异步任务中的 onPostExecute?
Is there a callback in Volley to notify of completed network call like onPostExecute in Async Task?
Volley 是否有任何回调以了解网络调用何时完成并成功完成?
谢谢
编辑:抱歉,我完全忘记了一条重要信息!这是针对 ImageLoader 而不是标准请求?
是的,当你添加要发送的请求时,你可以为它设置一个回调,它会在请求完成或失败时被调用,就像这样:
StringRequest stringRequest = new StringRequest("http://www.baidu.com",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
onResponse
用来告诉你请求已经完成,onErrorResponse
用来告诉你因为网络不通等原因请求失败。
当然可以。有两个回调。一个用于成功响应,另一个用于失败。
这里是 Volley 回调的一个很好的例子:
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
imageLoader.get(Const.URL_IMAGE, new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", "Image Load Error: " + error.getMessage());
}
@Override
public void onResponse(ImageContainer response, boolean arg1) {
Log.i("TAG", "onResponse");
if (response.getBitmap() != null) {
// load image into imageView
imageView.setImageBitmap(response.getBitmap());
}
}
});
Volley 是否有任何回调以了解网络调用何时完成并成功完成?
谢谢
编辑:抱歉,我完全忘记了一条重要信息!这是针对 ImageLoader 而不是标准请求?
是的,当你添加要发送的请求时,你可以为它设置一个回调,它会在请求完成或失败时被调用,就像这样:
StringRequest stringRequest = new StringRequest("http://www.baidu.com",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
onResponse
用来告诉你请求已经完成,onErrorResponse
用来告诉你因为网络不通等原因请求失败。
当然可以。有两个回调。一个用于成功响应,另一个用于失败。
这里是 Volley 回调的一个很好的例子:
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
imageLoader.get(Const.URL_IMAGE, new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", "Image Load Error: " + error.getMessage());
}
@Override
public void onResponse(ImageContainer response, boolean arg1) {
Log.i("TAG", "onResponse");
if (response.getBitmap() != null) {
// load image into imageView
imageView.setImageBitmap(response.getBitmap());
}
}
});