From: k.liang Date: Sat, 17 Jul 2021 07:55:08 +0000 (+0800) Subject: 修改向aidl发送数据时没有单独的心率或者血氧 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=93440d476fddd36be9e1da136fbd638ce6507160;p=icworkservice.git 修改向aidl发送数据时没有单独的心率或者血氧 --- 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()); + } } }