From: TrillGates Date: Fri, 10 Jun 2022 03:30:37 +0000 (+0800) Subject: 如果关注数据的回调数量为0,那么就停止测试. X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=afc4524e802ca886f30b925d0663a21daa38afb6;p=icworkservice.git 如果关注数据的回调数量为0,那么就停止测试. --- diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202203032007_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202203032007_release.apk deleted file mode 100644 index 6d4d47a..0000000 Binary files a/app/IcL02WorkService/release/IcL02WorkService_V59_202203032007_release.apk and /dev/null differ diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202204161046_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202204161046_release.apk new file mode 100644 index 0000000..ceb2006 Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V59_202204161046_release.apk differ diff --git a/app/IcL02WorkService/release/output.json b/app/IcL02WorkService/release/output.json index 694f433..f90a5fe 100644 --- a/app/IcL02WorkService/release/output.json +++ b/app/IcL02WorkService/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202203032007_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202203032007_release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202204161046_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202204161046_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/java/com/ic/work/SensorDataService.java b/app/src/main/java/com/ic/work/SensorDataService.java index 36ad983..3680c00 100644 --- a/app/src/main/java/com/ic/work/SensorDataService.java +++ b/app/src/main/java/com/ic/work/SensorDataService.java @@ -174,7 +174,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp if (testTaskEvent.from.equals(TestTaskEvent.From.CLIENT_CMD) && isTest) { BloodInfoHelper.MaxTestCount = 300; } else { - BloodInfoHelper.MaxTestCount = BloodInfoHelper.MaxTestCount = 40; + BloodInfoHelper.MaxTestCount = BloodInfoHelper.MaxTestCount = 40; ; } isOxygenOrHeartRateStop = false; @@ -281,6 +281,11 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp TemperatureHelper.getInstance().getTemperature(); } + private void stopTemperatureTest() { + ICLogger.d("stop temperature test..."); + TemperatureHelper.getInstance().stopTemperature(); + } + //获取心率,这里要完成整个过程 private void getHeartInfo() { if (!isOxygenOrHeartRateStop) { @@ -317,6 +322,10 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp public void unRegisterCallback(IHeartRateSensorCallback callback) { ICLogger.d("heartRateSensorService unRegisterCallback ==> " + callback); heartRateCallbacks.unregister(callback); + if (heartRateCallbacks.getRegisteredCallbackCount() == 0) { + //停止测试 + BloodInfoHelper.getInstance().stopTest(); + } } @Override @@ -479,6 +488,11 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp @Override public void unRegisterCallback(ITempSensorCallback callback) { temperatureCallbacks.unregister(callback); + //判断数量,如果数量为空了,说明不需要测试了 + if (temperatureCallbacks.getRegisteredCallbackCount() == 0) { + //停止测试 + stopTemperatureTest(); + } ICLogger.d("tempSensorService unRegisterCallback ==> " + callback); } diff --git a/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java b/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java index 4a28cf3..722692d 100644 --- a/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java +++ b/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java @@ -2,6 +2,7 @@ package com.ic.work.hardware; import android.os.SystemClock; + import com.ic.jni.ICJniUtils; import com.ic.work.domain.TemperatureItem; import com.ic.work.utils.AlgorithmUtils; @@ -42,8 +43,10 @@ public class TemperatureHelper { private double lastBodyTemp = 0.0; private double lastWristTemp = 0.0; private int delayTimesInSeconds = 20; + private boolean isStop = true; public void getTemperature() { + isStop = false; long start = System.currentTimeMillis(); lastTempOut = 0.0; lastBodyTemp = 0.0; @@ -60,6 +63,10 @@ public class TemperatureHelper { SystemClock.sleep(1000); } do { + if (isStop) { + ICLogger.d("stop temperature..."); + break; + } IcLog.d(TAG, "do temperature...."); SystemClock.sleep(1000); long getStartTime = System.currentTimeMillis(); @@ -135,6 +142,10 @@ public class TemperatureHelper { this.mListener = listener; } + public void stopTemperature() { + this.isStop = true; + } + public interface TemperatureChangeListener { void onTemperatureUpdate(double wristTemp, double bodyTemp, double envTemp);