diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 1c568c5f..cc5cd41a 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -437,7 +437,7 @@ public class MicroPhotoService extends Service { nextPhotoTime *= 1000; if (nextPhotoTime > ts) { mHeartbeatDuration = (int) ((nextPhotoTime - ts) % duration) + 999; - registerHeartbeatTimer(); + registerHeartbeatTimer(false); mHeartbeatDuration = duration; } else { mHeartbeatDuration = duration; @@ -448,13 +448,20 @@ public class MicroPhotoService extends Service { mHeartbeatDuration = duration; } } + private void registerHeartbeatTimer() { + registerHeartbeatTimer(true); + } + + private void registerHeartbeatTimer(boolean normalDuration) { // 创建延迟意图 long triggerTime = System.currentTimeMillis() + mHeartbeatDuration; Intent alarmIntent = new Intent(); alarmIntent.setAction(ACTION_HEARTBEAT); - alarmIntent.putExtra("HeartbeatDuration", mHeartbeatDuration); + if (normalDuration) { + alarmIntent.putExtra("HeartbeatDuration", mHeartbeatDuration); + } alarmIntent.putExtra("HeartbeatTime", triggerTime); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);