From: snickersun Date: Thu, 19 Nov 2020 07:13:24 +0000 (+0800) Subject: 修改Deliver Sending loop 发送逻辑,保证不会因为重复调用TriggerSendThread造成发送逻辑混乱。 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=2c5caac806b02c91dfe94c2e56a7b46057d16740;p=protocol_srv.git 修改Deliver Sending loop 发送逻辑,保证不会因为重复调用TriggerSendThread造成发送逻辑混乱。 --- 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 cc7adc24..6b6950ef 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -61,6 +61,7 @@ public class Deliver extends AbstractConnectionService { private static int isAppSetWifi = 0; + private static boolean sendloopruning=false; private static ReentrantLock mLock = new ReentrantLock(); @@ -104,10 +105,13 @@ public class Deliver extends AbstractConnectionService { delaySendMSG = new Runnable() { @Override public void run() { - mSendMSGHandler.removeCallbacks(delaySendMSG); - if (getAndSendMsgFromQueue()==true){ - mSendMSGHandler.postDelayed(delaySendMSG,5000L); - } + sendloopruning=true; + while(getAndSendMsgFromQueue()==true) + { + //数据发送成功,则5秒后进行下一轮发送 + Util.mSleep(5000); + } //没有数据可以发送,则退出sendloop + sendloopruning=false; } }; } @@ -143,9 +147,14 @@ public class Deliver extends AbstractConnectionService { } public static void triggerSendThread() { - mSendMSGHandler.removeCallbacks(delaySendMSG); - mSendMSGHandler.post(delaySendMSG); - ICLogger.i("triggerSendThread "); + + if(sendloopruning==false) { + ICLogger.i("triggerSendThread !"); + mSendMSGHandler.post(delaySendMSG); + }else{ + ICLogger.i("triggerSendThread running skip !"); + } + // delaySendMSG.run(); // mSendMSGHandler.sendEmptyMessage(1); }