使用 XUtils 的 HttpUtils 發送請求時,因非同步執行導致主線程直接 return 而拿不到回調資料。需透過 Handler 機制將子執行緒結果傳回主執行緒處理。
// 在回調 success 方法中
Message msg = new Message();
msg.obj = resultList;
handler.sendMessage(msg);
// 定義 Handler 處理結果
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
List> data = (List>) msg.obj;
// 在這裡進行 UI 更新或資料判斷邏輯
}
};
核心原則:不要在非同步回調外直接 return 結果,而是在 handleMessage 中完成後續邏輯。