From 32573af5b03858b3ab902b2027c17764a57daca8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 11 Oct 2024 13:16:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=90=AFMpAPP=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpmaster/MpMasterService.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index dc2f6590..04f4d217 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -459,19 +459,23 @@ public class MpMasterService extends Service { ((ts - modifiedTimeOfPhoto) > mTimeOfMpAppAlive * 4) || ((ts - modifiedTimeOfUpload) > mTimeOfMpAppAlive * 4)) { - String msg = "Restart MpAPP as it is NOT Running hb=" + Long.toString(ts - modifiedTimeOfHb) + - " taking=" + Long.toString(ts - modifiedTimeOfPhoto) + " sending=" + Long.toString(ts - modifiedTimeOfUpload) + - " Will restart MpApp in " + Long.toString(mDelayedRestartMpTime / 1000) + " seconds"; - logger.warning(msg); + if (ts - mTimeToStartMpApp >= 30000) { + String msg = "Restart MpAPP as it is NOT Running hb=" + Long.toString(ts - modifiedTimeOfHb) + + " taking=" + Long.toString(ts - modifiedTimeOfPhoto) + " sending=" + Long.toString(ts - modifiedTimeOfUpload) + + " Will restart MpApp in " + Long.toString(mDelayedRestartMpTime / 1000) + " seconds"; + logger.warning(msg); + + AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); + Intent alarmIntent = new Intent(); + alarmIntent.setAction(ACTION_MP_RESTART); + alarmIntent.putExtra("reason", msg); - AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); - Intent alarmIntent = new Intent(); - alarmIntent.setAction(ACTION_MP_RESTART); - alarmIntent.putExtra("reason", msg); + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); - PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); + alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, ts + mDelayedRestartMpTime, pendingIntent); - alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, ts + mDelayedRestartMpTime, pendingIntent); + mTimeToStartMpApp = ts; + } } } catch (Exception ex) { ex.printStackTrace(); @@ -624,7 +628,8 @@ public class MpMasterService extends Service { if (intent.hasExtra("HeartbeatDuration")) { - mService.mMpHeartbeatDuration = intent.getIntExtra("HeartbeatDuration", 600000); + int hbDuration = intent.getIntExtra("HeartbeatDuration", 600000); + mService.mMpHeartbeatDuration = hbDuration > 0 ? hbDuration : 600000; } mService.mPreviousMpHbTime = intent.getLongExtra("HeartbeatTime", System.currentTimeMillis()); mService.logger.info("Heartbeat Timer Fired By MpAPP ACTION=" + action + " MpHB=" + Long.toString(mService.mMpHeartbeatDuration));