看板 java 關於我們 聯絡資訊
各位版友好, 最近在維護前輩的code時發生一個問題如下, java.lang.RuntimeException: Can't create handler inside thread that has not ca lled Looper.prepare() 請問該怎麼解決呢...? 有其他更好的寫法嗎? 程式碼如下 public void getStatus(String jsonString, Callback cb) throws RemoteException { ? ? ? ? Log.d(TAG, String.format("getStatus: %s : %s", "RECE_FROM_AGENT", json String)); ? ? ? ? this.functionString = "getStatus"; ? ? ? ? this.jsonData = jsonString; ? ? ? ? this.Callback = cb; ? ? ? ? this.mHandler = new Handler() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void handleMessage(Message msg) { ? ? ? ? ? ? ? ? Bundle b; ? ? ? ? ? ? ? ? if (msg.what == 1) { ? ? ? ? ? ? ? ? ? ? b = msg.getData(); ? ? ? ? ? ? ? ? ? ? Log.d("data key 1", String.valueOf(b.getInt("k1"))); ? ? ? ? ? ? ? ? ? ? resultString = String.valueOf(b.getString("returnString")) ; ? ? ? ? ? ? ? ? ? ? try { ? ? ? ? ? ? ? ? ? ? ? ? if (Boolean.valueOf(b.getBoolean("successFlag"))) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? mCb.onSuccess(resultString); ? ? ? ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? mCb.onError(resultString); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } catch (RemoteException e) { ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? super.handleMessage(msg); ? ? ? ? ? ? } ? ? ? ? }; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.54.10 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1530848798.A.C1B.html ※ 編輯: Dong0129 (114.137.54.10), 07/06/2018 11:49:23
y3k: HandlerThread() 07/06 13:41
cha122977: 同上,把那個Thread換成HandlerThread 07/10 20:35