From: TrillGates Date: Mon, 21 Jun 2021 12:47:29 +0000 (+0800) Subject: handler stop in server test. X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.js?a=commitdiff_plain;h=640f661091a42efc3cfddf075da691be54fedb26;p=icworkservice.git handler stop in server test. --- diff --git a/app/src/main/java/com/ic/work/SensorDataService.java b/app/src/main/java/com/ic/work/SensorDataService.java index 638e8ee..b3effd9 100644 --- a/app/src/main/java/com/ic/work/SensorDataService.java +++ b/app/src/main/java/com/ic/work/SensorDataService.java @@ -337,6 +337,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp = new RemoteCallbackList<>(); private boolean isOxygenOrHeartRateStop = false; + private boolean hasServerRequest = false; private final IHeartRateSensorService.Stub heartRateSensorService = new IHeartRateSensorService.Stub() { @Override @@ -356,6 +357,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp isOxygenOrHeartRateStop = false; jxHeartRateMode = 2; IcLog.d(TAG, "getHeartRateInfo..." + from + " tag == > " + tag); + if (from == TestTaskEvent.From.SERVER_CMD.getValue()) { + hasServerRequest = true; + } createTask(from, TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN, tag); } @@ -364,6 +368,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp isOxygenOrHeartRateStop = false; //只获取血氧 IcLog.d(TAG, "getJustOxygenInfo..." + from + " tag == > " + callbackTag); + if (from == TestTaskEvent.From.SERVER_CMD.getValue()) { + hasServerRequest = true; + } createTask(from, TestTaskEvent.SensorType.JUST_OXYGEN, callbackTag); } @@ -371,6 +378,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp public void getJustHeartRateInfo(int from, String callbackTag) { isOxygenOrHeartRateStop = false; //只获取心率 + if (from == TestTaskEvent.From.SERVER_CMD.getValue()) { + hasServerRequest = true; + } IcLog.d(TAG, "getJustHeartRateInfo..." + from + " tag == > " + callbackTag); createTask(from, TestTaskEvent.SensorType.JUST_HEART_RATE, callbackTag); } @@ -381,7 +391,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp //判断当前的任务是啥?如果是心率或者血氧的,并且是来自UI的测试,那么就停止 //如果是来自后台的不会停止 //如果队列里的任务是来自UI的心率/血氧,移除任务 - if (from == TestTaskEvent.From.CLIENT_CMD.getValue()) { + //判断是否有来自于后台的请求 + ICLogger.d("from == > " + from + " hasServerRequest == > " + hasServerRequest); + if (from == TestTaskEvent.From.CLIENT_CMD.getValue() && !hasServerRequest) { BloodInfoHelper.getInstance().stopTest(); isOxygenOrHeartRateStop = true; } @@ -681,6 +693,8 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp e.printStackTrace(); } finally { heartRateCallbacks.finishBroadcast(); + //处理完了就可以了,重置状态 + hasServerRequest = false; } } }