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());
    }
}
});