[问题] 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