From: kfl_614 Date: Mon, 30 Nov 2020 07:43:59 +0000 (+0800) Subject: add a flag to controller task execute. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=1ff39ad6385e1b743cf7864ae290d8821dfddd79;p=icworkservice.git add a flag to controller task execute. --- diff --git a/.idea/misc.xml b/.idea/misc.xml index 19aa6a5..79dcac5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,9 +1,18 @@ + + + + \ No newline at end of file diff --git a/.idea/qaplug_profiles.xml b/.idea/qaplug_profiles.xml new file mode 100644 index 0000000..3dfd21f --- /dev/null +++ b/.idea/qaplug_profiles.xml @@ -0,0 +1,465 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/ic/work/ThreadPoolManager.java b/app/src/main/java/com/ic/work/ThreadPoolManager.java index 03b901a..abb97d7 100644 --- a/app/src/main/java/com/ic/work/ThreadPoolManager.java +++ b/app/src/main/java/com/ic/work/ThreadPoolManager.java @@ -9,7 +9,6 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class ThreadPoolManager { - private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); private static ThreadPoolManager mInstance; diff --git a/app/src/main/java/com/ic/work/WorkService.java b/app/src/main/java/com/ic/work/WorkService.java index 067554f..45a0583 100644 --- a/app/src/main/java/com/ic/work/WorkService.java +++ b/app/src/main/java/com/ic/work/WorkService.java @@ -23,6 +23,7 @@ import com.ic.work.event.LocationResultEvent; import com.ic.work.event.PedCountEvent; import com.ic.work.event.PedRecordResultEvent; import com.ic.work.event.PedSettingEvent; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.event.TemperatureResultCompleteEvent; import com.ic.work.event.TemperatureResultEvent; import com.ic.work.event.ThreadPoolEvent; @@ -57,6 +58,16 @@ import org.threeten.bp.ZoneId; import java.util.Observable; +import static com.ic.work.utils.ICWorkConstants.EventType.STOP_ALL_TASK; +import static com.ic.work.utils.ICWorkConstants.EventType.TEST_A9_BLOOD; +import static com.ic.work.utils.ICWorkConstants.EventType.TEST_AK_BLOOD; +import static com.ic.work.utils.ICWorkConstants.EventType.TEST_TEMPERATURE; +import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_BLOOD; +import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_HARD_WARE; +import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_IC_AK; +import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_IC_TEMP; +import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_WEATHER; + public class WorkService extends Service { private static final String TAG = "WorkService"; @@ -94,24 +105,25 @@ public class WorkService extends Service { private BloodSensorManager bloodSensorManager; + @Override public IBinder onBind(Intent intent) { if (intent != null) { IcLog.i(TAG, intent.getPackage()); switch (intent.getPackage()) { - case "com.ic.weather": + case ACTION_WEATHER: //天气 return weatherProcess.getWeatherBinder(); - case "com.ic.blood": + case ACTION_BLOOD: //血压 return bloodProcess.getBloodBinder(); - case "com.ic.hardware": + case ACTION_HARD_WARE: //计步 return pedProcess.getPedBinder(); - case "com.ic.temp": - //计步 + case ACTION_IC_TEMP: + //温度 return tempProcess.getTempBinder(); - case "com.ic.ak": + case ACTION_IC_AK: //计步 return akProcess.getAkBinder(); default: @@ -133,7 +145,7 @@ public class WorkService extends Service { tempProcess = new TempProcess(); akProcess = new AkProcess(); - mWeatherHelper = new WeatherHelper(mApp.getWeatherRepository(),this); + mWeatherHelper = new WeatherHelper(mApp.getWeatherRepository(), this); EventBus.getDefault().register(this); @@ -189,16 +201,16 @@ public class WorkService extends Service { public void onMessageEvent(BloodCheckTempEvent event) { if (bloodProcess != null) { bloodProcess.sendBloodCheckTemp(event.getHigh(), - event.getLow(), event.getHeart(),event.getOxygen()); + event.getLow(), event.getHeart(), event.getOxygen()); } } @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(BloodCheckResultEvent event) { - Log.i(TAG,"BloodCheckResultEvent "+event.getHeart()); + Log.i(TAG, "BloodCheckResultEvent " + event.getHeart()); if (bloodProcess != null) { bloodProcess.sendBloodCheckResult(event.getHigh(), - event.getLow(), event.getHeart(),event.getOxygen()); + event.getLow(), event.getHeart(), event.getOxygen()); } if (coreService != null) { @@ -206,7 +218,7 @@ public class WorkService extends Service { } //发送一次广播给 心率 launcher - sendHeartBroadcast(event.getHeart(),event.getOxygen()); + sendHeartBroadcast(event.getHeart(), event.getOxygen()); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -257,10 +269,16 @@ public class WorkService extends Service { } } + /** + * 温度消息更新的事件 + * + * @param event + */ @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(TemperatureResultEvent event) { + //处理温度 if (tempProcess != null) { - tempProcess.sendCurrTempValue(event.value, event.animal,event.tempOut); + tempProcess.sendCurrTempValue(event.value, event.animal, event.tempOut); } if (akProcess != null) { @@ -270,9 +288,9 @@ public class WorkService extends Service { @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(TemperatureResultCompleteEvent event) { - sendTempBroadcast(event.value, event.animal,event.tempOut); + sendTempBroadcast(event.value, event.animal, event.tempOut); if (tempProcess != null) { - tempProcess.sendResultTempValue(event.value, event.animal,event.tempOut); + tempProcess.sendResultTempValue(event.value, event.animal, event.tempOut); } if (akProcess != null) { @@ -298,7 +316,7 @@ public class WorkService extends Service { } //发送一次广播给 心率 launcher - sendHeartBroadcast(event.heart,event.oxygen); + sendHeartBroadcast(event.heart, event.oxygen); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -317,11 +335,36 @@ public class WorkService extends Service { } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onMessageEvent(ThreadPoolEvent event) { + /** + * 如果有任务在执行了,那么就是繁忙的。 + * 防止上层多次调用获取数据的动作。 + */ + private boolean mIsBusy = false; - IcLog.i(TAG,"onMessageEvent EventType "+event.getEventType()); + @Subscribe(threadMode = ThreadMode.MAIN) + public void onTaskFinishedEvent(TaskFinishedEvent event) { + mIsBusy = false; + } + + /** + * comment by TrillGates 2020-11-30 + * 这里的所有任务,都是直接new的,没有进行管理。 + * 从需求上,的确只有一个UI在最前面,当一个UI退出的时候,则会干掉所有的任务。 + * 这里加一个标记量,如果已经在获取数据了,就不处理了。 + * 如果没有在处理数据,那么就进行数据处理。 + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onMessageEvent(ThreadPoolEvent event) { + IcLog.i(TAG, "onMessageEvent EventType " + event.getEventType()); + if (mIsBusy) { + IcLog.d(TAG, "task is running.."); + return; + } + //进来了就繁忙了,除非是停止了,也就是4的Case,停止检测 + mIsBusy = true; switch (event.getEventType()) { case 1: ThreadPoolManager.getInstance().execute(new PedRunnable(mApp.getApplicationContext(), mApp.getRepository())); @@ -332,19 +375,20 @@ public class WorkService extends Service { case 3: ThreadPoolManager.getInstance().execute(new BloodRunnable()); break; - case 4: + case STOP_ALL_TASK: ThreadPoolManager.getInstance().remove(); + mIsBusy = false; break; case 5: ThreadPoolManager.getInstance().execute(new WeatherDBRun(mApp.getWeatherRepository())); break; - case 6: + case TEST_TEMPERATURE: ThreadPoolManager.getInstance().execute(new TemperatureRunnable()); break; - case 7: + case TEST_A9_BLOOD: ThreadPoolManager.getInstance().execute(new A9BloodRunnable()); break; - case 8: + case TEST_AK_BLOOD: ThreadPoolManager.getInstance().execute(new AkBloodRunnable()); break; } @@ -367,16 +411,16 @@ public class WorkService extends Service { //testBatteryBroadcast(this,"ddddddddddddtttttttttttttttttttttttt"); } - private void sendHeartBroadcast(int count,int spo2) { + private void sendHeartBroadcast(int count, int spo2) { Intent pedIntent = new Intent(); pedIntent.setAction(HEART_ACTION); pedIntent.putExtra("BLOOD_HEART", count); pedIntent.putExtra("BLOOD_SPO2", spo2); - Log.i(TAG,"sendHeartBroadcast "+HEART_ACTION+" BLOOD_HEART "+count+" BLOOD_SPO2 "+spo2); + Log.i(TAG, "sendHeartBroadcast " + HEART_ACTION + " BLOOD_HEART " + count + " BLOOD_SPO2 " + spo2); sendBroadcast(pedIntent); } - private void sendTempBroadcast(double value, double animal,double tempOut) { + private void sendTempBroadcast(double value, double animal, double tempOut) { Intent pedIntent = new Intent(); pedIntent.setAction(ACTION_TEMP_RESULT); pedIntent.putExtra(KEY_TEMP_WRIST, value); @@ -429,7 +473,7 @@ public class WorkService extends Service { public int[] getPPG_ECG_adjustValue(Context context) { String value = IcSystemProperty.getSystemProperties("persist.sys.PpgEcgAdjust", "0,0,0,0"); - IcLog.i(TAG,"getPPG_ECG_adjustValue:"+value); + IcLog.i(TAG, "getPPG_ECG_adjustValue:" + value); String[] result = value.split(","); if (result.length == 4) { int[] res = new int[4]; diff --git a/app/src/main/java/com/ic/work/event/TaskFinishedEvent.java b/app/src/main/java/com/ic/work/event/TaskFinishedEvent.java new file mode 100644 index 0000000..92a2f3b --- /dev/null +++ b/app/src/main/java/com/ic/work/event/TaskFinishedEvent.java @@ -0,0 +1,5 @@ +package com.ic.work.event; + +public class TaskFinishedEvent { + +} diff --git a/app/src/main/java/com/ic/work/hardware/A9BloodRunnable.java b/app/src/main/java/com/ic/work/hardware/A9BloodRunnable.java index b705bff..b2a45d7 100644 --- a/app/src/main/java/com/ic/work/hardware/A9BloodRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/A9BloodRunnable.java @@ -9,6 +9,7 @@ import android.hardware.SensorManager; import com.ic.work.event.AkBloodCheckResultEvent; import com.ic.work.event.BloodCheckTipsEvent; import com.ic.work.event.BloodSensorEvent; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.utils.HardwareUtils; import com.ic.work.utils.IcLog; @@ -38,6 +39,8 @@ public class A9BloodRunnable implements Runnable { if (!deviceState[0]) { sendTipsEventBus(BLOOD_NULL_TIPS, BLOOD_NOT_DEVICE); + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); return; } @@ -47,6 +50,9 @@ public class A9BloodRunnable implements Runnable { } else { checkBloodOther(); } + + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); } private void sendTipsEventBus(int top, int bottom) { diff --git a/app/src/main/java/com/ic/work/hardware/AkBloodRunnable.java b/app/src/main/java/com/ic/work/hardware/AkBloodRunnable.java index 3308f43..dd74844 100644 --- a/app/src/main/java/com/ic/work/hardware/AkBloodRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/AkBloodRunnable.java @@ -4,6 +4,7 @@ import com.ic.work.event.AkBloodCheckResultEvent; import com.ic.work.event.BloodCheckResultEvent; import com.ic.work.event.BloodCheckTempEvent; import com.ic.work.event.BloodCheckTipsEvent; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.utils.HardwareUtils; import com.ic.work.utils.IcLog; @@ -66,8 +67,9 @@ public class AkBloodRunnable implements Runnable { } Thread.sleep(1000); } - - if(count >=10){ + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); + if (count >= 10) { sendTipsEventBus(BLOOD_NULL_TIPS, BLOOD_NOT_WEAR); } else if (ndkHeart == 0) { sendTipsEventBus(BLOOD_STOP_CHECK, BLOOD_NOT_DATA_CHECK); diff --git a/app/src/main/java/com/ic/work/hardware/BloodRunnable.java b/app/src/main/java/com/ic/work/hardware/BloodRunnable.java index 9a06b9f..50b7758 100644 --- a/app/src/main/java/com/ic/work/hardware/BloodRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/BloodRunnable.java @@ -11,6 +11,7 @@ import com.ic.work.event.BloodCheckResultEvent; import com.ic.work.event.BloodCheckTempEvent; import com.ic.work.event.BloodCheckTipsEvent; import com.ic.work.event.BloodSensorEvent; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.utils.HardwareUtils; import com.ic.work.utils.IcLog; @@ -40,6 +41,8 @@ public class BloodRunnable implements Runnable { if (!deviceState[0]) { sendTipsEventBus(BLOOD_NULL_TIPS, BLOOD_NOT_DEVICE); + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); return; } @@ -49,6 +52,8 @@ public class BloodRunnable implements Runnable { } else { checkBloodOther(); } + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); } private void sendTipsEventBus(int top, int bottom) { diff --git a/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java b/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java index 71b653a..79bf8fa 100644 --- a/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java @@ -4,6 +4,7 @@ import com.ic.aidl.ped.RecordParcelable; import com.ic.work.db.PedInjection; import com.ic.work.db.entity.PedEntity; import com.ic.work.event.PedRecordResultEvent; +import com.ic.work.event.TaskFinishedEvent; import org.greenrobot.eventbus.EventBus; import org.threeten.bp.format.DateTimeFormatter; @@ -33,8 +34,9 @@ public class PedRecordRunnable implements Runnable { recordList.add(recordP); } - //发送数据到主线程 EventBus.getDefault().post(new PedRecordResultEvent(recordList)); + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); } } diff --git a/app/src/main/java/com/ic/work/hardware/PedRunnable.java b/app/src/main/java/com/ic/work/hardware/PedRunnable.java index a489288..a745f30 100644 --- a/app/src/main/java/com/ic/work/hardware/PedRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/PedRunnable.java @@ -4,6 +4,7 @@ import android.content.Context; import com.ic.work.db.PedInjection; import com.ic.work.event.PedCountEvent; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.utils.HardwareUtils; import com.ic.work.utils.IcLog; @@ -13,8 +14,8 @@ public class PedRunnable extends PedBaseRunnable implements Runnable { private static final String TAG = "PedRunnable"; - public PedRunnable(Context context,PedInjection pedDB) { - super(context,pedDB); + public PedRunnable(Context context, PedInjection pedDB) { + super(context, pedDB); } @Override @@ -23,6 +24,8 @@ public class PedRunnable extends PedBaseRunnable implements Runnable { IcLog.i(TAG, "Get Ped Count" + ped); //发送给主线程。主线更新数据UI EventBus.getDefault().post(new PedCountEvent(ped)); - updateCountDB(ped,getOffsetDateTime()); + updateCountDB(ped, getOffsetDateTime()); + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); } } diff --git a/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java b/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java index b959daf..a93df96 100644 --- a/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java @@ -3,6 +3,7 @@ package com.ic.work.hardware; import android.app.ActivityManager; import android.content.Context; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.event.TemperatureResultCompleteEvent; import com.ic.work.event.TemperatureResultEvent; import com.ic.work.utils.HardwareUtils; @@ -19,67 +20,69 @@ public class TemperatureRunnable implements Runnable { @Override public void run() { - double testValue = 0.0; - double animal = 0.0; - double tempout = 0.0; - double lastTempout = 0.0; - double lastBodytemp =0.0; + double testValue; + double animal; + double tempout; + double lastTempOut = 0.0; + double lastBodyTemp = 0.0; double lastWristTemp = 0.0; - int delay_times_in_seconds=10; + int delay_times_in_seconds = 10; boolean[] state = HardwareUtils.isTemperatureDevAvailable(); - IcLog.i(TAG, "TemperatureRunnable :"+state[0]+" state[1]:"+state[1]); - if(state[0]) { //have temp - - try { + IcLog.i(TAG, "TemperatureRunnable :" + state[0] + " state[1]:" + state[1]); + if (state[0]) { //have temp + try { // if(HardwareUtils.isTemperatureDevOpened()){ + IcLog.i(TAG, "getNdkTemperatureValue enableTemperature"); + HardwareUtils.disablePedometer(); + if (HardwareUtils.enableTemperature()) { IcLog.i(TAG, "getNdkTemperatureValue enableTemperature"); - HardwareUtils.disablePedometer(); - if (HardwareUtils.enableTemperature()) { - IcLog.i(TAG, "getNdkTemperatureValue enableTemperature"); - Thread.sleep(1000); - } + Thread.sleep(1000); + } // } - while (true) { - testValue = HardwareUtils.getNdkTemperatureValue(); - tempout = HardwareUtils.getNdkTemperatureOutValue(); - if (tempout<0 || tempout > 60 ) - tempout=0; - if(tempout>0 ){ - animal = HardwareUtils.getBodyTempFromWristTemp(testValue, tempout); - }else { - animal = HardwareUtils.getBodyTempFromWristTemp(testValue, room_temperature); - } - IcLog.i(TAG, "getNdkTemperatureValue Value:" + testValue + " TempOut:"+tempout+" bodyTemp:"+animal); - if(tempout>50 || tempout<10 || testValue<10 || testValue>50 ){ - IcLog.i(TAG, "getNdkTemperatureValue TempOut or Wirst Value out of range skip send it ! "); - }else { - lastBodytemp=animal; - lastWristTemp=testValue; - lastTempout=tempout; - EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal, tempout)); - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - break; - } - delay_times_in_seconds--; - //延时delay_times_in_seconds秒后停止检测。 - if (delay_times_in_seconds<=0) - break; + while (true) { + testValue = HardwareUtils.getNdkTemperatureValue(); + tempout = HardwareUtils.getNdkTemperatureOutValue(); + if (tempout < 0 || tempout > 60) + tempout = 0; + if (tempout > 0) { + animal = HardwareUtils.getBodyTempFromWristTemp(testValue, tempout); + } else { + animal = HardwareUtils.getBodyTempFromWristTemp(testValue, room_temperature); + } + IcLog.i(TAG, "getNdkTemperatureValue Value:" + testValue + " TempOut:" + tempout + " bodyTemp:" + animal); + if (tempout > 50 || tempout < 10 || testValue < 10 || testValue > 50) { + IcLog.i(TAG, "getNdkTemperatureValue TempOut or Wirst Value out of range skip send it ! "); + } else { + lastBodyTemp = animal; + lastWristTemp = testValue; + lastTempOut = tempout; + EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal, tempout)); + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + break; } - HardwareUtils.disableTemperature(); - } catch (InterruptedException e) { - IcLog.e(TAG, "TemperatureRunnable :", e); - } finally { - HardwareUtils.disableTemperature(); - HardwareUtils.enablePedometer(); - IcLog.i(TAG, "disableTemperature !"); + delay_times_in_seconds--; + //延时delay_times_in_seconds秒后停止检测。 + if (delay_times_in_seconds <= 0) + break; } + HardwareUtils.disableTemperature(); + } catch (InterruptedException e) { + IcLog.e(TAG, "TemperatureRunnable :", e); + } finally { + HardwareUtils.disableTemperature(); + //如果不关掉其他的计步的服务,读取数据会不准。 + HardwareUtils.enablePedometer(); + IcLog.i(TAG, "disableTemperature !"); + //add by TrillGates notify task finished. + EventBus.getDefault().post(new TaskFinishedEvent()); + } } - EventBus.getDefault().post(new TemperatureResultCompleteEvent(lastWristTemp, lastBodytemp,lastTempout)); + EventBus.getDefault().post(new TemperatureResultCompleteEvent(lastWristTemp, lastBodyTemp, lastTempOut)); } public static double div(double value1, int value2, int scale) { diff --git a/app/src/main/java/com/ic/work/process/AkProcess.java b/app/src/main/java/com/ic/work/process/AkProcess.java index 101f265..1eb5ea1 100644 --- a/app/src/main/java/com/ic/work/process/AkProcess.java +++ b/app/src/main/java/com/ic/work/process/AkProcess.java @@ -13,6 +13,8 @@ import com.ic.work.utils.IcSystemProperty; import org.greenrobot.eventbus.EventBus; +import static com.ic.work.utils.ICWorkConstants.EventType.STOP_ALL_TASK; + public class AkProcess { private static final String TAG = "BloodProcess"; @@ -41,12 +43,12 @@ public class AkProcess { @Override public void startCheckBlood() throws RemoteException { - String CUSTOM_NAME= IcSystemProperty.getSystemProperties("persist.sys.customname",""); + String CUSTOM_NAME = IcSystemProperty.getSystemProperties("persist.sys.customname", ""); if (CUSTOM_NAME.equals("AK")) { //ak EventBus.getDefault().post(new ThreadPoolEvent(8)); - }else{ + } else { //a9 EventBus.getDefault().post(new ThreadPoolEvent(7)); } @@ -54,7 +56,7 @@ public class AkProcess { @Override public void stopCheckBlood() throws RemoteException { - EventBus.getDefault().post(new ThreadPoolEvent(4)); + EventBus.getDefault().post(new ThreadPoolEvent(STOP_ALL_TASK)); } @Override @@ -69,28 +71,28 @@ public class AkProcess { @Override public void onStopQueryTemp() throws RemoteException { - EventBus.getDefault().post(new ThreadPoolEvent(4)); + EventBus.getDefault().post(new ThreadPoolEvent(STOP_ALL_TASK)); } }; - public void sendBloodCheckResult(int heih, int low, int heart,int oxygen) { + public void sendBloodCheckResult(int heih, int low, int heart, int oxygen) { int N = 0; try { N = mCallbacks.beginBroadcast(); for (int i = 0; i < N; i++) { - mCallbacks.getBroadcastItem(i).updateBloodCheckResult(heih, low, heart,oxygen); + mCallbacks.getBroadcastItem(i).updateBloodCheckResult(heih, low, heart, oxygen); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } @@ -103,16 +105,16 @@ public class AkProcess { mCallbacks.getBroadcastItem(i).updateBloodCheckTips(top, bottom); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } @@ -125,60 +127,60 @@ public class AkProcess { mCallbacks.getBroadcastItem(i).updatePedCount(count); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } - public void sendCurrTempValue(double value,double animal) { + public void sendCurrTempValue(double value, double animal) { int N = 0; try { N = mCallbacks.beginBroadcast(); for (int i = 0; i < N; i++) { - mCallbacks.getBroadcastItem(i).updateCurrTempValue(value,animal); + mCallbacks.getBroadcastItem(i).updateCurrTempValue(value, animal); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } - public void sendResultTempValue(double value,double animal) { + public void sendResultTempValue(double value, double animal) { int N = 0; try { N = mCallbacks.beginBroadcast(); for (int i = 0; i < N; i++) { - mCallbacks.getBroadcastItem(i).updateResultTempValue(value,animal); + mCallbacks.getBroadcastItem(i).updateResultTempValue(value, animal); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } diff --git a/app/src/main/java/com/ic/work/process/BloodProcess.java b/app/src/main/java/com/ic/work/process/BloodProcess.java index 3b23b77..7bdadb9 100644 --- a/app/src/main/java/com/ic/work/process/BloodProcess.java +++ b/app/src/main/java/com/ic/work/process/BloodProcess.java @@ -12,6 +12,8 @@ import com.ic.work.utils.IcLog; import org.greenrobot.eventbus.EventBus; +import static com.ic.work.utils.ICWorkConstants.EventType.STOP_ALL_TASK; + public class BloodProcess { private static final String TAG = "BloodProcess"; @@ -44,50 +46,50 @@ public class BloodProcess { @Override public void stopCheckBlood() throws RemoteException { - EventBus.getDefault().post(new ThreadPoolEvent(4)); + EventBus.getDefault().post(new ThreadPoolEvent(STOP_ALL_TASK)); } }; - public void sendBloodCheckResult(int heih, int low, int heart,int oxygen) { + public void sendBloodCheckResult(int heih, int low, int heart, int oxygen) { int N = 0; try { N = mCallbacks.beginBroadcast(); for (int i = 0; i < N; i++) { - mCallbacks.getBroadcastItem(i).updateBloodCheckResult(heih, low, heart,oxygen); + mCallbacks.getBroadcastItem(i).updateBloodCheckResult(heih, low, heart, oxygen); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } - public void sendBloodCheckTemp(int heih, int low, int heart,int oxygen) { + public void sendBloodCheckTemp(int heih, int low, int heart, int oxygen) { int N = 0; try { N = mCallbacks.beginBroadcast(); for (int i = 0; i < N; i++) { - mCallbacks.getBroadcastItem(i).updateBloodCheckTemp(heih, low, heart,oxygen); + mCallbacks.getBroadcastItem(i).updateBloodCheckTemp(heih, low, heart, oxygen); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } @@ -100,16 +102,16 @@ public class BloodProcess { mCallbacks.getBroadcastItem(i).updateBloodCheckTips(top, bottom); } } catch (NullPointerException e) { - IcLog.e(TAG, "",e); + IcLog.e(TAG, "", e); } catch (RemoteException er) { - IcLog.e(TAG, "",er); + IcLog.e(TAG, "", er); } finally { try { if (N > 0) { mCallbacks.finishBroadcast(); } } catch (IllegalArgumentException ll) { - IcLog.e(TAG, "",ll); + IcLog.e(TAG, "", ll); } } } diff --git a/app/src/main/java/com/ic/work/process/TempProcess.java b/app/src/main/java/com/ic/work/process/TempProcess.java index 7c551e9..9198f61 100644 --- a/app/src/main/java/com/ic/work/process/TempProcess.java +++ b/app/src/main/java/com/ic/work/process/TempProcess.java @@ -16,6 +16,8 @@ import org.greenrobot.eventbus.EventBus; import java.util.List; +import static com.ic.work.utils.ICWorkConstants.EventType.STOP_ALL_TASK; + public class TempProcess { private static final String TAG = "TemperatureProcess"; @@ -50,7 +52,7 @@ public class TempProcess { @Override public void onStopQueryTemp() throws RemoteException { IcLog.i(TAG,"onStopQueryTemp"); - EventBus.getDefault().post(new ThreadPoolEvent(4)); + EventBus.getDefault().post(new ThreadPoolEvent(STOP_ALL_TASK)); } }; @@ -62,10 +64,8 @@ public class TempProcess { for (int i = 0; i < N; i++) { mCallbacks.getBroadcastItem(i).updateCurrTempValue(value,animal,tempOut); } - } catch (NullPointerException e) { + } catch (NullPointerException | RemoteException e) { IcLog.e(TAG, "",e); - } catch (RemoteException er) { - IcLog.e(TAG, "",er); } finally { try { if (N > 0) { diff --git a/app/src/main/java/com/ic/work/utils/ICWorkConstants.java b/app/src/main/java/com/ic/work/utils/ICWorkConstants.java new file mode 100644 index 0000000..0603051 --- /dev/null +++ b/app/src/main/java/com/ic/work/utils/ICWorkConstants.java @@ -0,0 +1,35 @@ +package com.ic.work.utils; + +/** + * create by TrillGates 2020-11-30 + */ +public interface ICWorkConstants { + + /** + * 服务类型 + */ + interface ServiceType { + String ACTION_WEATHER = "com.ic.weather"; + String ACTION_BLOOD = "com.ic.blood"; + String ACTION_HARD_WARE = "com.ic.hardware"; + String ACTION_IC_TEMP = "com.ic.temp"; + String ACTION_IC_AK = "com.ic.ak"; + } + + + /** + * Event的事件类型 + */ + interface EventType { + //温度 + int TEST_TEMPERATURE = 6; + //A9的心率 + int TEST_A9_BLOOD = 7; + //AK的心率 + int TEST_AK_BLOOD = 8; + //删除所有的任务 + int STOP_ALL_TASK = 4; + } + + +} diff --git a/app/src/main/java/com/ic/work/weather/WeatherDBRun.java b/app/src/main/java/com/ic/work/weather/WeatherDBRun.java index bdcc1a5..9647bd5 100644 --- a/app/src/main/java/com/ic/work/weather/WeatherDBRun.java +++ b/app/src/main/java/com/ic/work/weather/WeatherDBRun.java @@ -3,6 +3,7 @@ package com.ic.work.weather; import com.ic.aidl.weather.WeatherParcelable; import com.ic.work.db.WeatherInjection; import com.ic.work.db.entity.WeatherEntity; +import com.ic.work.event.TaskFinishedEvent; import com.ic.work.event.WeatherAgainEvent; import com.ic.work.event.WeatherResultEvent; @@ -19,29 +20,29 @@ public class WeatherDBRun implements Runnable { private static final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; - private WeatherInjection weatherDb; + private WeatherInjection weatherDb; - public WeatherDBRun(WeatherInjection weather){ + public WeatherDBRun(WeatherInjection weather) { this.weatherDb = weather; } @Override public void run() { - List weatherList = weatherDb.queryDBWeatherDate(); - if(weatherList == null || weatherList.size() ==0){ + List weatherList = weatherDb.queryDBWeatherDate(); + if (weatherList == null || weatherList.size() == 0) { //通知主线程 开始定位 并通过Socket 获取天气 EventBus.getDefault().post(new WeatherAgainEvent()); - }else { + } else { List wpList = new ArrayList<>(weatherList.size()); //判断当天是否有昨天的数据,如果有则不是最新数据,要请求数据库 OffsetDateTime now = OffsetDateTime.now(ZoneId.systemDefault()); - Duration interval = Duration.between(weatherList.get(0).getQueryTime(),now); - if(interval.toDays() != 0){ + Duration interval = Duration.between(weatherList.get(0).getQueryTime(), now); + if (interval.toDays() != 0) { EventBus.getDefault().post(new WeatherAgainEvent()); - }else{ - for (int i=0; i