summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/AlarmManagerService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/AlarmManagerService.java')
-rw-r--r--services/java/com/android/server/AlarmManagerService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java
index 5e54d61..5ffcdc5 100644
--- a/services/java/com/android/server/AlarmManagerService.java
+++ b/services/java/com/android/server/AlarmManagerService.java
@@ -764,12 +764,18 @@ class AlarmManagerService extends IAlarmManager.Stub {
public void scheduleTimeTickEvent() {
Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(System.currentTimeMillis());
+ final long currentTime = System.currentTimeMillis();
+ calendar.setTimeInMillis(currentTime);
calendar.add(Calendar.MINUTE, 1);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
-
- set(AlarmManager.RTC, calendar.getTimeInMillis(), mTimeTickSender);
+
+ // Schedule this event for the amount of time that it would take to get to
+ // the top of the next minute.
+ final long tickEventDelay = calendar.getTimeInMillis() - currentTime;
+
+ set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + tickEventDelay,
+ mTimeTickSender);
}
public void scheduleDateChangedEvent() {