[問題] Looper.prepare()

看板java作者 (阿東)時間6年前 (2018/07/06 11:46), 6年前編輯推噓0(002)
留言2則, 2人參與, 6年前最新討論串1/1
各位版友好, 最近在維護前輩的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

07/06 13:41, 6年前 , 1F
HandlerThread()
07/06 13:41, 1F

07/10 20:35, 6年前 , 2F
同上,把那個Thread換成HandlerThread
07/10 20:35, 2F
文章代碼(AID): #1RFkOUmR (java)
文章代碼(AID): #1RFkOUmR (java)