From c64da51ae481dfc2a25e5a6e39bb94f22d65428a Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期五, 10 一月 2020 13:33:09 +0800 Subject: [PATCH] s --- lib/src/main/java/com/anyun/exam/lib/RemoteService.java | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/src/main/java/com/anyun/exam/lib/RemoteService.java b/lib/src/main/java/com/anyun/exam/lib/RemoteService.java index f8b7133..c509eb4 100644 --- a/lib/src/main/java/com/anyun/exam/lib/RemoteService.java +++ b/lib/src/main/java/com/anyun/exam/lib/RemoteService.java @@ -68,7 +68,14 @@ Log.i(TAG,"onCreate()"); speaker = new Speaker(getApplicationContext()); - startNative(); + new Thread(new StartNative()).start(); + } + + class StartNative implements Runnable { + @Override + public void run() { + startNative(); + } } @Override @@ -78,23 +85,23 @@ mIsServiceDestroyed.set(true); } - private void onMessageArrived(int cmd, String json){ + private void onMessageArrived(int cmd, String json) { int N = mListenerList.getRegisteredCallbackCount(); - mListenerList.beginBroadcast(); - - for (int i = 0; i < N; i++) { - mListener = mListenerList.getBroadcastItem(i); - if (mListener != null){ - try { - mListener.onMessageArrived(cmd, json); - } catch (RemoteException e) { - e.printStackTrace(); + synchronized(this) { + mListenerList.beginBroadcast(); + for (int i = 0; i < N; i++) { + mListener = mListenerList.getBroadcastItem(i); + if (mListener != null) { + try { + mListener.onMessageArrived(cmd, json); + } catch (RemoteException e) { + e.printStackTrace(); + } } } - + mListenerList.finishBroadcast(); } - mListenerList.finishBroadcast(); } public void SendMsgToMainProc(int cmd, String value) { -- Gitblit v1.8.0