From: snickersun Date: Thu, 22 Oct 2020 00:13:16 +0000 (+0800) Subject: 1、优化函数,尽量去除常用函数中不必要的 new Handler 及 new Runnable X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=d0887d73e49e32ee050c8a9c19eb6ec1f0c99975;p=protocol_srv.git 1、优化函数,尽量去除常用函数中不必要的 new Handler 及 new Runnable 2、添加Util.mSleep函数 3、优化 Login,Heartbeat流程,减少不必要的数据发送,严格按照login成功才发送heartbeat,heartbeat成功才发送其他的逻辑。 --- diff --git a/app/app.iml b/app/app.iml index 497b2ac8..e442bebb 100644 --- a/app/app.iml +++ b/app/app.iml @@ -29,15 +29,15 @@ - - + + - - + + diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 52d32b68..3f3765f7 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -121,6 +121,7 @@ public class CoreService extends Service { // SPRD: add outdoorMode public static final int RINGER_MODE_OUTDOOR = 3; + public static Handler mHandler=new Handler(); private static ICSmsManager smsManager=null; public String getServerAlive(){ return DeviceInfoUtil.getDeviceInfo(runtime); @@ -223,17 +224,21 @@ public class CoreService extends Service { if(Config.SOSNoNeedDial==false) { //50ms后开始拨打电话 - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - trigger_SOS_Call(); - } - },500); + mHandler.postDelayed(mTriggerSOSCALLThread,500); } } } }; + private TriggerSOSCALLThread mTriggerSOSCALLThread=new TriggerSOSCALLThread(); + + private class TriggerSOSCALLThread implements Runnable{ + + @Override + public void run() { + trigger_SOS_Call(); + } + } private void trigger_SOS_Call(){ try { Intent intent = new Intent("com.eqc.shutdown_sos"); @@ -244,6 +249,15 @@ public class CoreService extends Service { e.printStackTrace(); } } + private Runnable mupdatePracticeData=new Runnable(){ + @Override + public void run() { + //ICHttpUtil.uploadData(Runtime.healthInfo.getBufferDataStr(),runtime,TimeUtil.getSystemTime2(),null); + Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE()); + //发送过后重置 + Runtime.healthInfo.resetBuffer(); + } + }; private BroadcastReceiver broadcastPracticeCMDReceiver = new BroadcastReceiver() { public void onReceive(Context param1Context, Intent param1Intent) { @@ -272,21 +286,14 @@ public class CoreService extends Service { if(Runtime.healthInfo.getInfoCount()>=0){ //超过30次发送数据给服务器 ICLogger.i("自由锻炼结束,发送数据给服务器 "+Runtime.healthInfo.getBufferData().length); - new Handler().post(new Runnable() { - @Override - public void run() { - //ICHttpUtil.uploadData(Runtime.healthInfo.getBufferDataStr(),runtime,TimeUtil.getSystemTime2(),null); - Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE()); - //发送过后重置 - Runtime.healthInfo.resetBuffer(); - } - }); + mHandler.post(mupdatePracticeData); } } } } }; + private static class ServerHandler implements ConnectionListener { private final WeakReference mReference; @@ -371,18 +378,7 @@ public class CoreService extends Service { //为了保证唤醒时各个状态及时更新到服务器,发送一个同步心跳包,这样用户体验更好 CoreService.this.locationClient.updateStepCount(); - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - if (connection.isServerConnected()&& runtime.isServerProtocolConnected()) { - mKeepAlive.onHeartAlarm(connection, runtime); - }else{ - ICLogger.i("check 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!"); - connection.disconnectServer(); - startConnectionRetryTimer(); - } - } - },500); + mHandler.postDelayed(mRetryConnectSrvThread,500); if (CoreService.is_wifi_network_ok) { @@ -404,6 +400,18 @@ public class CoreService extends Service { } }; + private Runnable mRetryConnectSrvThread=new Runnable(){ + @Override + public void run() { + if (connection.isServerConnected()&& runtime.isServerProtocolConnected()) { + mKeepAlive.onHeartAlarm(connection, runtime); + }else{ + ICLogger.i("check 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!"); + connection.disconnectServer(); + startConnectionRetryTimer(); + } + } + }; private int startAlarmCount = 0; @@ -506,27 +514,25 @@ public class CoreService extends Service { //只有周期大于1才有效,否则就等于单次测量 if (Runtime.practice_cycle>1) AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,Runtime.practice_cycle,Constants.ACTION_PRACTICE_REPORT_ALARM); + mHandler.post(mdoPracticeCheck); + } + private Runnable mdoPracticeCheck=new Runnable(){ + @Override + public void run() { + //获取并设置当前步数 + ICLogger.i("自由锻炼中,设置步数 "+runtime.getTotalStepCount()); + Runtime.healthInfo.setStepCount(runtime.getTotalStepCount()); + //开启定位 + // locationClient.triggerLocationProcess(); + //开启测温 + TemperatureUtil.DoTempTest(); + + //开启测量PPG + HeartRateManager.triggerPPGtest(); - new Thread(new Runnable() { - @Override - public void run() { - //获取并设置当前步数 - ICLogger.i("自由锻炼中,设置步数 "+runtime.getTotalStepCount()); - Runtime.healthInfo.setStepCount(runtime.getTotalStepCount()); - //开启定位 - // locationClient.triggerLocationProcess(); - //开启测温 - TemperatureUtil.DoTempTest(); - - //开启测量PPG - HeartRateManager.triggerPPGtest(); - - - } - }).start(); - + } + }; - } private void checkconnection(){ if (!this.connection.isServerConnected()) @@ -705,12 +711,28 @@ public class CoreService extends Service { // } } }else if (Config.custom_name.equals("JIAI")) { //L02 + if (Config.getConfigInitFlag(this) == 0) { + Config.setPPGTestCycle(this, 0); + Config.setTemperatureTestCycle(runtime, 0); + Config.forceMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。 + Config.setConfigInitFlag(this, 1); + } + + }else if (Config.custom_name.equals("VitracK")){ + + Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS,true); + Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY,true); + Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true); + Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true); + Config.enableSleep=false; if (Config.getConfigInitFlag(this)==0) { + Config.setLocationMode(this, CUSTOM_MOD8_GPS); + Config.setLocationCycle(this, 30*60); Config.setPPGTestCycle(this, 0); Config.setTemperatureTestCycle(runtime, 0); - Config.forceMoveCheck=false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。 Config.setConfigInitFlag(this, 1); } + }else{ if (Config.getConfigInitFlag(this)==0) { @@ -924,11 +946,7 @@ public class CoreService extends Service { ICLogger.i("SitCheck 平均 每分钟活动数 小于参考久坐计步值,表示久坐"); WakeLockUtil.ScreenOnWakeLockTemperary(this); VibrateUtil.getInstance(this).VibrateOn(true); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(1000); runtime.getContextProxy().sendBroadcastSitLongAlarm(); //广播久坐消息 //提醒后 重置 lastCheckSitTime 以及 lastSitCheckStepCount , 重新计时 Runtime.lastSitCheckStepCount=runtime.getTotalStepCount(); @@ -1391,15 +1409,17 @@ public class CoreService extends Service { retry_connect_count=0; KeepAlive.isConnected = false; if (mTimer_retry_connect != null) { - mTimer_retry_connect.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - ReConnectToServer(); - } - }, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次 + mTimer_retry_connect.scheduleAtFixedRate(mReConnectSrvThread, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次 } // } } + private ReConnectSrvThread mReConnectSrvThread=new ReConnectSrvThread(); + private class ReConnectSrvThread implements Runnable{ + @Override + public void run() { + ReConnectToServer(); + } + } private static int no_network_Heartbeats_Count=0; diff --git a/app/src/main/java/com/enqualcomm/support/CrashHandler.java b/app/src/main/java/com/enqualcomm/support/CrashHandler.java index 87517b73..bc5536a9 100644 --- a/app/src/main/java/com/enqualcomm/support/CrashHandler.java +++ b/app/src/main/java/com/enqualcomm/support/CrashHandler.java @@ -11,6 +11,7 @@ import android.widget.Toast; import com.enqualcomm.support.R; import com.enqualcomm.support.utils.StorageUtils; +import com.enqualcomm.support.utils.Util; import java.io.File; import java.io.FileOutputStream; @@ -82,12 +83,7 @@ public class CrashHandler implements Thread.UncaughtExceptionHandler { // 如果用户没有处理则让系统默认的异常处理器来处理 mDefaultHandler.uncaughtException(thread, ex); } else { - try { - Thread.sleep(3000); - } catch (InterruptedException e) { -// Log.e(TAG, "error : " + e); - e.printStackTrace(); - } + Util.mSleep(1000); } // 退出程序 diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index 8a38105b..c9a9f34f 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -13,6 +13,7 @@ import com.enqualcomm.support.adapter.BTHelper; import com.enqualcomm.support.utils.AlarmHelper; import com.enqualcomm.support.adapter.LBSHelper; import com.enqualcomm.support.utils.Connection; +import com.enqualcomm.support.utils.Util; import com.ic.protocols.protocolAPIHelper; import com.enqualcomm.support.bean.ICLocation; import com.enqualcomm.support.bean.StringMessage; @@ -162,9 +163,7 @@ public class LocationClient { } if(in_area == false && ScanBLERetryCount-- > 0){ //如果没有扫描到,且扫描次数没有超限,则重新扫描一次。注意要delay 5秒 - try{ - Thread.sleep(5000); - }catch ( Exception e){} + Util.mSleep(5000); //Do retry Scan ICLogger.i("BT BLE not found retry Scan "+ ScanBLERetryCount); btHelper.scanBLE(); @@ -470,9 +469,7 @@ public class LocationClient { btHelper.scanBLE(); } } else { - try{ - Thread.sleep(1000); - }catch (Exception e){} + Util.mSleep(1000); StringMessage waningmsg=protocolAPIHelper.getWarningMSG(runtime); DeliverMessage(waningmsg); } diff --git a/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java b/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java index 689ad8b2..f89a3fea 100644 --- a/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java +++ b/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java @@ -11,6 +11,7 @@ import android.os.Handler; import com.enqualcomm.support.bean.Runtime; import com.enqualcomm.support.Config; import com.enqualcomm.support.utils.ICLogger; +import com.enqualcomm.support.utils.Util; import java.util.ArrayList; import java.util.Set; @@ -56,11 +57,7 @@ public class BTHelper { if (!mBtAdapter.isEnabled()) { mBtAdapter.enable(); - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(2000); //此处无法执行说没权限 // mBtAdapter.enableNoAutoConnect(); } diff --git a/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java b/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java index e0a3f4ba..6ce206dd 100644 --- a/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java +++ b/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java @@ -31,6 +31,7 @@ import com.enqualcomm.support.utils.DeviceInfoUtil; import com.enqualcomm.support.utils.FileOutputUtil; import com.enqualcomm.support.utils.ICLogger; import com.enqualcomm.support.utils.SimSignalUtil; +import com.enqualcomm.support.utils.Util; import java.util.Collections; import java.util.Comparator; @@ -133,38 +134,34 @@ public class LBSHelper { // Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1() { // public void call(Object param1Object) { + Util.mSleep(500); - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉 - ICLogger.i("setWifiEnabled false"); + //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉 + ICLogger.i("setWifiEnabled false"); // if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) { - if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) { - //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。 - ICLogger.i("isNoTurnOffWifiOnScreenOff or In Factory Mode"); - if (!IS_HASOPEN && IS_OPEN) { + if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) { + //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。 + ICLogger.i("isNoTurnOffWifiOnScreenOff or In Factory Mode"); + if (!IS_HASOPEN && IS_OPEN) { // wifiManager.setWifiEnabled(false); - IS_OPEN = false; - } - } else { - //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电 - ICLogger.i("isTurnOffWifiOnScreenOff"); - wifiManager.setWifiEnabled(false); IS_OPEN = false; - IS_HASOPEN = false; - } + } else { + //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电 + ICLogger.i("isTurnOffWifiOnScreenOff"); + wifiManager.setWifiEnabled(false); + IS_OPEN = false; + IS_HASOPEN = false; + + } // }else{ // ICLogger.i("isTurnOffWifiOnScreenOff"); // wifiManager.setWifiEnabled(false); // IS_OPEN = false; // IS_HASOPEN = false; // } - ICLogger.i("setWifiEnabled done"); + ICLogger.i("setWifiEnabled done"); - } - },500); }else{ ICLogger.i("mMyWifiListener is null skip callback"); @@ -224,11 +221,7 @@ public class LBSHelper { } else { this.wifiManager.setWifiEnabled(true); this.IS_OPEN = true; - try { - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(500); } //wait_count=0; CurrentWiFiScanTimes=0; diff --git a/app/src/main/java/com/enqualcomm/support/service/Deliver.java b/app/src/main/java/com/enqualcomm/support/service/Deliver.java index 8142dbda..e12aeeb1 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -140,9 +140,9 @@ public class Deliver extends AbstractConnectionService { return ret; } public static void triggerSendThread() { -// mSendMSGHandler.post(delaySendMSG); + mSendMSGHandler.post(delaySendMSG); ICLogger.i("triggerSendThread "); - delaySendMSG.run(); +// delaySendMSG.run(); // mSendMSGHandler.sendEmptyMessage(1); } private static boolean NeedCheckServerResponse=true; @@ -393,10 +393,7 @@ public class Deliver extends AbstractConnectionService { //开启测温 TemperatureUtil.DoTempTest(); - try { - Thread.sleep(5000); - } catch (Exception e) { - } + Util.mSleep(5000); //开启测量PPG HeartRateManager.triggerPPGtest(); } @@ -415,7 +412,7 @@ public class Deliver extends AbstractConnectionService { }else{ Util.ShowToast(paramRuntime,"Do poweroff!"); } - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { Util.shutdown(); @@ -433,7 +430,7 @@ public class Deliver extends AbstractConnectionService { }else{ Util.ShowToast(paramRuntime,"Do FactoryReset!"); } - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { Util.doMasterClear(paramRuntime.getContextProxy().context); @@ -442,7 +439,7 @@ public class Deliver extends AbstractConnectionService { return true; } else if ("poweroff".equals(paramStringMessage.cmd())) { paramRuntime.setShutdown(true); - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { Util.shutdown(); @@ -450,7 +447,7 @@ public class Deliver extends AbstractConnectionService { },500); return true; } else if ("FactoryReset".equals(paramStringMessage.cmd())) { - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { Util.doMasterClear(paramRuntime.getContextProxy().context); @@ -458,7 +455,7 @@ public class Deliver extends AbstractConnectionService { },500); return true; } else if ("Reboot".equals(paramStringMessage.cmd())) { - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { Util.reboot(paramRuntime.getContextProxy().context); @@ -474,7 +471,7 @@ public class Deliver extends AbstractConnectionService { mConnection.send(protocolAPIHelper.getWeatherMSG(mRuntime)); } else if ("NewVoice".equals(paramStringMessage.cmd())) { - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { final Context context = (Deliver.this.mRuntime.getContextProxy()).context; @@ -513,7 +510,7 @@ public class Deliver extends AbstractConnectionService { return true; }else if ("findDev".equals(paramStringMessage.cmd())) { - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { final Context context = (Deliver.this.mRuntime.getContextProxy()).context; @@ -531,13 +528,13 @@ public class Deliver extends AbstractConnectionService { String recordfilepath=Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3()); int recordtime=Integer.parseInt(paramStringMessage.isFromCache().trim()); - new Handler().post(new Runnable() { + mSendMSGHandler.post(new Runnable() { @Override public void run() { AudioService.getInstance().startRecord(recordfilepath); } }); - new Handler().postDelayed(new Runnable() { + mSendMSGHandler.postDelayed(new Runnable() { @Override public void run() { AudioService.getInstance().stopRecord(); diff --git a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java index 1ad197fa..a9a37f56 100644 --- a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java +++ b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java @@ -10,6 +10,7 @@ import android.os.Handler; import com.enqualcomm.support.Config; import com.enqualcomm.support.CoreService; import com.enqualcomm.support.LocationClient; +import com.enqualcomm.support.utils.Util; import com.ic.protocols.protocolAPIHelper; import com.enqualcomm.support.bean.StringMessage; import com.enqualcomm.support.service.base.AbstractConnectionService; @@ -61,6 +62,7 @@ public class KeepAlive extends AbstractConnectionService { //每次retry发送心跳的间隔为20秒 private int heartBeatRetryTimeout=20; + private Handler mHandler=new Handler(); //监测 心跳服务器响应的timer private ScheduledThreadPoolExecutor scheduled = null; private Runnable CheckSrvResponseTimerTask=new Runnable() { @@ -88,6 +90,20 @@ public class KeepAlive extends AbstractConnectionService { } } + private Runnable msendMsgAfterHeartbeat=new Runnable() { + @Override + public void run() { + connection.send(protocolAPIHelper.getBindingMSG(mRuntime)); + if (Config.protocol_no==Config.PROTOCOL_FZD){ + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime)); + } + },5000); + } + } + }; public void checkSrvResponse(){ @@ -124,23 +140,6 @@ public class KeepAlive extends AbstractConnectionService { }else { if (is_login_send_success) { connection.send(protocolAPIHelper.getHeartbeatMSG(mRuntime)); - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - connection.send(protocolAPIHelper.getBindingMSG(mRuntime)); - - if (Config.protocol_no==Config.PROTOCOL_FZD){ - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime)); - } - },1000); - } - } - },1000); - - } else { connection.send(protocolAPIHelper.getLoginMSG(mRuntime)); } @@ -156,6 +155,8 @@ public class KeepAlive extends AbstractConnectionService { } } + + public void stopResponseCheckTimer(){ if (scheduled !=null){ scheduled.shutdownNow(); @@ -284,13 +285,13 @@ public class KeepAlive extends AbstractConnectionService { ICLogger.i("Update IMEI "+ret); //发送登录包 is_login_send_success=false; - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - connection.send(protocolAPIHelper.getLoginMSG(paramRuntime)); - } - },500); - isConnected = true; + + isConnected = true; + + Util.mSleep(1000); + + connection.send(protocolAPIHelper.getLoginMSG(paramRuntime)); + // this.firstReConnected = true; // this.idleTimeMillis = SystemClock.elapsedRealtime(); @@ -315,21 +316,6 @@ public class KeepAlive extends AbstractConnectionService { //发送心跳包 connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime)); //发送完心跳后,开始检查服务器响应 -// new Handler().postDelayed(new Runnable() { -// @Override -// public void run() { -// connection.send(protocolAPIHelper.getBindingMSG(mRuntime)); -// } -// },1000); -// -// if (Config.protocol_no==Config.PROTOCOL_FZD){ -// new Handler().postDelayed(new Runnable() { -// @Override -// public void run() { -// connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime)); -// } -// },2000); -// } startResponseCheckTimer(); @@ -348,6 +334,9 @@ public class KeepAlive extends AbstractConnectionService { // LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_ON); // Deliver.triggerSendThread(); //链接上就尝试清除 buffer中的数据 + //心跳结束后执行 + mHandler.post(msendMsgAfterHeartbeat); + if (CoreService.needLocateInAfterHeartBeat==true){ //第一次启动或者系统Close后重连的时候,重置LocationCycle CoreService.needLocateInAfterHeartBeat=false; @@ -367,31 +356,14 @@ public class KeepAlive extends AbstractConnectionService { paramRuntime.lastLoginSuccessTime=System.currentTimeMillis(); //发送心跳包 - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - //这时重新连接服务器才进行的连接,理论上close已经设置false,此次可以认为协议定然断开,所以设置为false作为双重保险。 - mRuntime.setServerProtocolConnected(false); - connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime)); - //发送完心跳后,开始检查服务器响应 - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - connection.send(protocolAPIHelper.getBindingMSG(mRuntime)); - if (Config.protocol_no==Config.PROTOCOL_FZD){ - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime)); - } - },1000); - } - } - },1000); - startResponseCheckTimer(); - } - },3500); + //这时重新连接服务器才进行的连接,理论上close已经设置false,此次可以认为协议定然断开,所以设置为false作为双重保险。 + mRuntime.setServerProtocolConnected(false); + connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime)); + //发送完心跳后,开始检查服务器响应 + + startResponseCheckTimer(); + } return false; diff --git a/app/src/main/java/com/enqualcomm/support/toolActivity.java b/app/src/main/java/com/enqualcomm/support/toolActivity.java index 68d7ec79..78f66862 100644 --- a/app/src/main/java/com/enqualcomm/support/toolActivity.java +++ b/app/src/main/java/com/enqualcomm/support/toolActivity.java @@ -130,9 +130,7 @@ public class toolActivity extends Activity { Util.ShowToast(CoreService.getInstance().runtime, "Stop ProtocolService!"); stopService(new Intent(toolActivity.this, CoreService.class));// protocol service - try{ - Thread.sleep(3000); - }catch (Exception e ){} + Util.mSleep(3000); if (CoreService.getInstance()!=null) Util.ShowToast(CoreService.getInstance().runtime, "Start ProtocolService!"); startService(new Intent(toolActivity.this, CoreService.class));// protocol service diff --git a/app/src/main/java/com/enqualcomm/support/utils/CameraUtil.java b/app/src/main/java/com/enqualcomm/support/utils/CameraUtil.java index f53fd02f..6b10f6ee 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/CameraUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/CameraUtil.java @@ -210,7 +210,7 @@ public class CameraUtil implements SurfaceTexture.OnFrameAvailableListener { public void run() { try { CameraUtil.this.mCamera.takePicture(CameraUtil.this.shutterCallback, null, CameraUtil.this.jpegCallback); - Thread.sleep(5000L); + Util.mSleep(5000); return; } catch (Exception exception) { exception.printStackTrace(); diff --git a/app/src/main/java/com/enqualcomm/support/utils/ContextProxy.java b/app/src/main/java/com/enqualcomm/support/utils/ContextProxy.java index c279b074..b1a9456f 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/ContextProxy.java +++ b/app/src/main/java/com/enqualcomm/support/utils/ContextProxy.java @@ -378,11 +378,7 @@ public class ContextProxy { WakeLockUtil.ScreenOnWakeLockTemperary(_context); play_waning_notify(_context); VibrateUtil.getInstance(_context).VibrateOnOnce(true); - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(2000); } Intent intent = new Intent(ActionSrvPushTxt); intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息 @@ -405,11 +401,7 @@ public class ContextProxy { WakeLockUtil.ScreenOnWakeLockTemperary(_context); play_waning_notify(_context); VibrateUtil.getInstance(_context).VibrateOnOnce(true); - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(2000); } Intent intent = new Intent(ActionSrvPushTxt); intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息,2代表有提示音的消息 @@ -433,11 +425,7 @@ public class ContextProxy { WakeLockUtil.ScreenOnWakeLockTemperary(_context); play_waning_notify(_context); VibrateUtil.getInstance(_context).VibrateOnOnce(true); - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(2000); } Intent intent = new Intent(ActionSrvPushTxt); diff --git a/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java b/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java index 20e6db97..2716386c 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java @@ -185,11 +185,7 @@ public class DnsUtil { }; runTask(temp, call); String ip; - try { - Thread.sleep(500L); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(500); // ICLogger.i(temp.toString()); if (temp.domainIp!=null){ if (temp.hostIp!=null){ diff --git a/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java b/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java index 162197a6..3227790b 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java +++ b/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java @@ -295,10 +295,7 @@ public class ProcessReceiver extends BroadcastReceiver { //开启测温 TemperatureUtil.DoTempTest(); - try { - Thread.sleep(5000); - } catch (Exception e) { - } + Util.mSleep(5000); //开启测量PPG HeartRateManager.triggerPPGtest(); } @@ -349,10 +346,7 @@ public class ProcessReceiver extends BroadcastReceiver { //开启测温 TemperatureUtil.DoTempTest(); - try { - Thread.sleep(5000); - } catch (Exception e) { - } + Util.mSleep(500); //开启测量PPG HeartRateManager.triggerPPGtest(); } diff --git a/app/src/main/java/com/enqualcomm/support/utils/TemperatureUtil.java b/app/src/main/java/com/enqualcomm/support/utils/TemperatureUtil.java index 6fa10836..2fea9de2 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/TemperatureUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/TemperatureUtil.java @@ -75,22 +75,13 @@ public class TemperatureUtil { if (ICJniUtils.isTemperatureDevAvailable() >ICJniUtils.TempSensorType.TEMPSENSOR_TYPE_NONE.ordinal()) { ICJniUtils.enableTemperature(); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - + Util.mSleep(1000); double wrist_temp, body_temp; wrist_temp = TemperatureUtil.get_temp_value_adjusted(); if(wrist_temp< 0.001f){ - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Util.mSleep(1000); ICLogger.i("retry read temp for 0"); wrist_temp = TemperatureUtil.get_temp_value_adjusted(); } diff --git a/app/src/main/java/com/enqualcomm/support/utils/Util.java b/app/src/main/java/com/enqualcomm/support/utils/Util.java index 658bde14..5fc111ad 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/Util.java +++ b/app/src/main/java/com/enqualcomm/support/utils/Util.java @@ -68,6 +68,11 @@ public class Util { private static String FT6236U_upgrade_dev="/sys/devices/platform/soc/soc:ap-apb/70800000.i2c/i2c-3/3-0038/ftsfwupdate"; private static String FT6236U_getver_dev="/sys/devices/platform/soc/soc:ap-apb/70800000.i2c/i2c-3/3-0038/ftstpfwver"; + public static void mSleep(int ms){ + try { + Thread.sleep(ms); + }catch ( Exception e){} + } public static boolean is_FT6236U_upgrade_firmware_support(){ boolean ret=getSystemProperties("product.tp.upgradeable").toLowerCase().equals("true");