From fc7a00d10c2a38e7c9e3e6b2f50beef366b17c88 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 19 Dec 2024 12:52:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BF=83=E8=B7=B3=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=99=A8=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xypower/mpapp/MicroPhotoService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 {