Volley是否有任何回電知道網絡通話何時完成併成功完成?在Volley中是否有回調函數來通知完成的網絡調用,如異步任務中的onPostExecute?
謝謝
編輯:對不起,我完全忘了一個重要的一塊信息!這是用於ImageLoader而不是標準請求?
Volley是否有任何回電知道網絡通話何時完成併成功完成?在Volley中是否有回調函數來通知完成的網絡調用,如異步任務中的onPostExecute?
謝謝
編輯:對不起,我完全忘了一個重要的一塊信息!這是用於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
用於告訴你請求失敗,因爲某些原因,比如網絡無法訪問。
對不起,我忘了提及這是用於ImageLoader? – x10sion
當然是的。有兩個回調。一個用於成功響應,另一個用於失敗。
這裏亂射回調的一個很好的例子:
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());
}
}
});
對不起,我忘了提及這是ImageLoader? – x10sion
我編輯了我的答案。請檢查它。 –
每個請求有一個監聽器(在構造函數傳入AFAIK),這不正是你想要的東西。 – Lingviston