android AQuery框架髮網絡請求時會通過一個回調方法將獲取的數據返回回來 ,很多時候網絡請求方法會放在一個單獨的包中,這裏通過重寫一次回調將callback回來的數據 再去回調一次到需要的地方 AQuery的一個下載地址:http://download.csdn.net/detail/yangbo437993234/7630885
在一個類中寫一個回調方法
public class SendPost{
/**
* 發送請求並返回想要的信息列表
* 這裏用的是Aquery框架的post請求 ,直接發送json對象到服務器 。其它請求方式一樣可以
* 重點:需要傳入一個 AjaxCallback<?> 回調對象作爲需要獲取數據的地方進行實時獲取數據
* 這裏返回的對象爲JSONObject 所以傳入對象爲 AjaxCallback<JSONObject>
**/
//實例化Aquery時需要傳入一個Context ,Activity 或者View 對象
public void async_post(String url, JSONObject args,Activity activity,
final AjaxCallback<JSONObject> delegate ) {
AQuery aq = new AQuery(activity); //實例化AQuery框架
aq.post(url, args, JSONObject.class, //發送POST請求 並返回數據 JSONObject json
new AjaxCallback<JSONObject>() {
@Override
public void callback(String url, JSONObject json,
AjaxStatus status) {
delegate.callback(url, json, status);
// 這裏將獲取的JSON數據 回調到需要的地方。。如果就一個地方使用的話,
//也可以直接在這裏進行處理
}
});
}
在寫好回調方法後 ,我們需要將它用在需要使用的地方 假設下段代碼在Activity中的某個方法裏
//這裏的數據都是假數據
String url="http://115.28.165.154:8080/";
JSONObject object=new JSONObject("name:Iyangc");
new SendPost(). async_post( url, args,this,
new AjaxCallback<List<DataInfo>>() {
public void callback(String url,JSONObject object,
com.androidquery.callback.AjaxStatus status) {
//object爲類SendPost發送請求回調回來的數據
// 可以在回調使用網絡獲取的數據了
}
});
這樣就可以在Activity中獲取回調回來的數據了。