From 65d7ec6ff7bda4ac9f66d170f6a8e453adc7e582 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 11 Sep 2024 17:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index cc5cd41a..40d32edd 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -308,7 +308,7 @@ public class MicroPhotoService extends Service { Thread th = new Thread(runnable); th.start(); - mService.registerHeartbeatTimer(); + mService.registerHeartbeatTimer(mService.mHeartbeatDuration); try { ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); @@ -431,17 +431,17 @@ public class MicroPhotoService extends Service { if (orgHeartbeatDuration == 0) { if (nextPhotoTime == 0) { mHeartbeatDuration = duration; - registerHeartbeatTimer(); + registerHeartbeatTimer(duration); } else { long ts = System.currentTimeMillis(); nextPhotoTime *= 1000; if (nextPhotoTime > ts) { - mHeartbeatDuration = (int) ((nextPhotoTime - ts) % duration) + 999; - registerHeartbeatTimer(false); mHeartbeatDuration = duration; + registerHeartbeatTimer((int) ((nextPhotoTime - ts) % duration) + 999); + } else { mHeartbeatDuration = duration; - registerHeartbeatTimer(); + registerHeartbeatTimer(duration); } } } else { @@ -449,27 +449,18 @@ public class MicroPhotoService extends Service { } } - private void registerHeartbeatTimer() { - registerHeartbeatTimer(true); - } - - private void registerHeartbeatTimer(boolean normalDuration) { + private void registerHeartbeatTimer(long timeout) { // 创建延迟意图 - long triggerTime = System.currentTimeMillis() + mHeartbeatDuration; + long triggerTime = System.currentTimeMillis() + timeout; Intent alarmIntent = new Intent(); alarmIntent.setAction(ACTION_HEARTBEAT); - if (normalDuration) { - alarmIntent.putExtra("HeartbeatDuration", mHeartbeatDuration); - } + alarmIntent.putExtra("HeartbeatDuration", mHeartbeatDuration); alarmIntent.putExtra("HeartbeatTime", triggerTime); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent); - - // mNextHeartbeatTime = System.currentTimeMillis() + mHeartbeatDuration; - // alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + timeout, pendingIntent); } private static void registerPhotoTimer(Context context, long scheduleTime, long takingTime, long timeout, List schedules) {