From 885c6b862cc160b2eb071262e07e55fdfcef8ff1 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 2 Feb 2021 10:12:43 +0800 Subject: [PATCH] fix bug --- .idea/gradle.xml | 1 + .../com/mogo/cloud/socket/SocketManager.java | 1 + .../realtime/core/UploadInTimeHandler.java | 24 ++++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index df338e2..1a0aaec 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -23,6 +23,7 @@ diff --git a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java index b13bfea..bb04f6f 100644 --- a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java +++ b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java @@ -96,6 +96,7 @@ public class SocketManager implements IMogoCloudSocketManager, Callback { public void registerOnMessageListener(int msgType, IMogoCloudSocketOnMessageListener listener) { if (mListeners.containsKey(msgType)) { Logger.w(TAG, "msgType %d is exist.", msgType); + return; } if (!mListeners.containsKey(msgType)) { mListeners.put(msgType, new ArrayList<>()); diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java index b2f6ae2..cb669ff 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java @@ -38,19 +38,21 @@ public class UploadInTimeHandler { } public void start() { - mHandler = new Handler(WorkThreadHandler.newInstance(TAG).getLooper()) { - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - if (msg.what == MSG_DATA_CHANGED) { - mHandler.sendEmptyMessageDelayed(MSG_DATA_CHANGED, uploadDelay); - if (iUploadInTimeListener != null) { - iUploadInTimeListener.sendLocationData(); + if (mHandler == null) { + mHandler = new Handler(WorkThreadHandler.newInstance(TAG).getLooper()) { + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + if (msg.what == MSG_DATA_CHANGED) { + mHandler.sendEmptyMessageDelayed(MSG_DATA_CHANGED, uploadDelay); + if (iUploadInTimeListener != null) { + iUploadInTimeListener.sendLocationData(); + } } } - } - }; - mHandler.sendEmptyMessage(MSG_DATA_CHANGED); + }; + mHandler.sendEmptyMessage(MSG_DATA_CHANGED); + } } public void setUploadInTimeListener(IUploadInTimeListener uploadInTimeListener) {