在Volley中是否有回调通知async Task中的onPostExecute等已完成的网络调用?

时间:2015-11-19 09:40:53

标签: java android android-volley

Volley是否有任何回电知道网络通话何时完成并成功完成?

谢谢

编辑:对不起,我完全忘了一条至关重要的信息!这是针对ImageLoader而不是标准Request?

2 个答案:

答案 0 :(得分:1)

是的,当您添加要发送的请求时,您可以为其设置回调,并在请求完成或失败时调用它,如下所示:

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用于告诉您请求失败,因为网络等某些原因无法访问。

答案 1 :(得分:0)

是的当然。有两个回调。一个用于成功响应,另一个用于失败。

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