diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index e330c52b..5ecf5dae 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -429,8 +429,13 @@ public class MicroPhotoService extends Service { Thread th = new Thread(runnable); th.start(); - long expectedHbTime = intent.getLongExtra("HeartbeatTime", 0); - long timeout = (expectedHbTime != 0) ? (expectedHbTime + mService.mHeartbeatDuration - System.currentTimeMillis()) : 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 {