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