[問題] Looper.prepare()

作者: Dong0129 (阿東跟上面講的情況一樣b)   2018-07-06 11:46:35
各位版友好,
最近在維護前輩的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);
? ? ? ? ? ? }
? ? ? ? };
作者: y3k (激流を制するは静水)   2018-07-06 13:41:00
HandlerThread()
作者: cha122977 (CHA)   2018-07-10 20:35:00
同上,把那個Thread換成HandlerThread

Links booklink

Contact Us: admin [ a t ] ucptt.com