From 93440d476fddd36be9e1da136fbd638ce6507160 Mon Sep 17 00:00:00 2001 From: "k.liang" Date: Sat, 17 Jul 2021 15:55:08 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E5=90=91aidl=E5=8F=91?= =?utf8?q?=E9=80=81=E6=95=B0=E6=8D=AE=E6=97=B6=E6=B2=A1=E6=9C=89=E5=8D=95?= =?utf8?q?=E7=8B=AC=E7=9A=84=E5=BF=83=E7=8E=87=E6=88=96=E8=80=85=E8=A1=80?= =?utf8?q?=E6=B0=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../java/com/ic/work/SensorDataService.java | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/ic/work/SensorDataService.java b/app/src/main/java/com/ic/work/SensorDataService.java index 498aa69..0e1ee7d 100644 --- a/app/src/main/java/com/ic/work/SensorDataService.java +++ b/app/src/main/java/com/ic/work/SensorDataService.java @@ -466,8 +466,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp IcLog.d(TAG, "create new task == > " + taskEvent); synchronized (mTaskLock) { //判断队列里是否有同样的任务,如果有的话不用发了, + IcLog.d(TAG, "contains == > " + mTaskList.contains(taskEvent)+", tag = "+tag); if (mTaskList.contains(taskEvent)) { - IcLog.d(TAG, "task contains..." + fromByValue); + IcLog.d(TAG, "task contains..." + fromByValue+", tag = "+tag); //通知正在等待执行 if (tag != null) { dispatchWaiting(censorType, tag); @@ -475,7 +476,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp return; } if (taskEvent.equals(currentTask)) { - IcLog.d(TAG, "current task running..."); + IcLog.d(TAG, "current task running..."+", tag = "+tag); //通知正在执行 if (tag != null) { dispatchTaskRunning(censorType, tag); @@ -490,7 +491,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp //直接运行不需要放到队列里了 EventBus.getDefault().post(taskEvent); } else { - IcLog.d(TAG, "new task waiting..." + taskEvent); + IcLog.d(TAG, "new task waiting..." + taskEvent +", tag = "+tag); //要放到队列里头,提示调用者正在等待执行 if (tag != null) { dispatchWaiting(censorType, tag); @@ -500,7 +501,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp } } + private void dispatchWaiting(TestTaskEvent.SensorType censorType, String tag) { + ICLogger.d("dispatchWaiting ..." + tag); if (censorType == TestTaskEvent.SensorType.TEMPERATURE) { //温度的 synchronized (mLock) { @@ -520,7 +523,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp temperatureCallbacks.finishBroadcast(); } } - } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN) { + } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN + || censorType == TestTaskEvent.SensorType.JUST_OXYGEN + || censorType == TestTaskEvent.SensorType.JUST_HEART_RATE) { //心率的 synchronized (mLock) { try { @@ -549,6 +554,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp * @param tag */ private void dispatchTaskRunning(TestTaskEvent.SensorType censorType, String tag) { + ICLogger.d("sensorType = "+(censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN)); if (censorType == TestTaskEvent.SensorType.TEMPERATURE) { //温度的 synchronized (mLock) { @@ -568,7 +574,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp temperatureCallbacks.finishBroadcast(); } } - } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN) { + } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN + || censorType == TestTaskEvent.SensorType.JUST_OXYGEN + || censorType == TestTaskEvent.SensorType.JUST_HEART_RATE) { //心率的 synchronized (mLock) { try { @@ -576,6 +584,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp while (i > 0) { i--; String callbackTag = (String) heartRateCallbacks.getBroadcastCookie(i); + ICLogger.d("callbackTag = "+ callbackTag +", tag = "+tag); if (callbackTag != null && callbackTag.equals(tag)) { heartRateCallbacks.getBroadcastItem(i).onGettingData(); break; @@ -620,13 +629,20 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp } private void checkContinue() { - wakeLock.release(); - isRunning = false; - currentTask = null; - int size = mTaskList.size(); - IcLog.d(TAG, "task list size == > " + size); - if (size > 0) { - EventBus.getDefault().post(mTaskList.poll()); + try { + if (wakeLock != null) { + wakeLock.release(); + } + }catch (Exception e){ + Log.getStackTraceString(e.fillInStackTrace()); + }finally { + isRunning = false; + currentTask = null; + int size = mTaskList.size(); + IcLog.d(TAG, "task list size == > " + size); + if (size > 0) { + EventBus.getDefault().post(mTaskList.poll()); + } } } -- 2.17.1