我調用新浪微博的SDK,其中調用官方的APT方法--userTimelineIds獲取微博ID,官方方法如下:
/**
* 獲取用戶發布的微博的ID
*
* @param uid 需要查詢的用戶ID
* @param since_id 若指定此參數,則返回ID比since_id大的微博(即比since_id時間晚的微博),默認為0
* @param max_id 若指定此參數,則返回ID小於或等於max_id的微博,默認為0
* @param count 單頁返回的記錄條數,默認為50
* @param page 返回結果的頁碼,默認為1
* @param base_app 是否只獲取當前應用的數據。false為否(所有數據),true為是(僅當前應用),默認為false
* @param featureType 過濾類型ID,0:全部、1:原創、2:圖片、3:視頻、4:音樂,默認為0
*
可以看出是用了AsynTask實現的異步回調。但是具體的requestAsync被新浪封裝,無法查看和修改。
在我自己的Activity中調用如下:
/**
* 通過登錄的用戶id獲取其發過的所有微博id
*/
mStatuseAPI.userTimelineIds(uid, 0L, 0L, 50, 1, false,
StatusesAPI.FEATURE_ALL,
new RequestListener() { //異步回調就是發起請求後,不等待響應就先去處理自己的響應
@Override
public void onWeiboException(WeiboException error) {
// TODO Auto-generated method stub
//出錯就打印出錯信息
error.printStackTrace();
}
@Override
public void onComplete(String result) {
// TODO Auto-generated method stub
Log.i(TAG, result);
//當括號內參數為(null)或者("")時,返回true,此方法既可以判斷字符串也可以判斷對象
if(!TextUtils.isEmpty(result)){
getWbList(result);
}else{
Log.i(TAG, "獲取不到微博ID或者此用戶沒有發過微博");
}
}
});
這裡onComplete方法返回的result是在異步回調線程中的,請問怎麼將數據拿到Activity中。這裡由於requestAsync無法查看和修改。就不能重載AsynTask裡的onPostExcate()方法傳回結果。
請問該怎麼在主線程中拿到數據?
http://www.educity.cn/wenda/177222.html