diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 1130406a..fc7b002e 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -410,8 +410,15 @@ public class MicroPhotoService extends Service { Thread th = new Thread(runnable); th.start(); - - mService.registerHeartbeatTimer(mService.mHeartbeatDuration); + + long ts = System.currentTimeMillis(); + long expectedHbTime = intent.getLongExtra("HeartbeatTime", ts); + long nextHbTime = expectedHbTime + mService.mHeartbeatDuration; + while (nextHbTime <= ts) { + nextHbTime += mService.mHeartbeatDuration; + } + long timeout = (expectedHbTime != 0) ? (nextHbTime - System.currentTimeMillis()) : mService.mHeartbeatDuration; + mService.registerHeartbeatTimer(timeout); try {