From 998e608ddde20be32b79466963a285009525b3d2 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 11 Sep 2014 19:13:23 -0700 Subject: [PATCH] Work on issue #17477510: Time change notifications sent too often Record the number of time change events seen by the alarm manager. Change-Id: I154e7e068626c71f76ee7b26f3e38a885025e0fa --- .../core/java/com/android/server/AlarmManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index e9419ad024898..8d3ec31b94c3e 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -127,6 +127,7 @@ class AlarmManagerService extends SystemService { long mLastAlarmDeliveryTime; long mStartCurrentDelayTime; long mNextNonWakeupDeliveryTime; + int mNumTimeChanged; private final SparseArray mNextAlarmClockForUser = new SparseArray<>(); @@ -821,6 +822,7 @@ class AlarmManagerService extends SystemService { pw.print(" = "); pw.println(sdf.format(new Date(nextNonWakeupRTC))); pw.print("Next wakeup: "); TimeUtils.formatDuration(mNextWakeup, nowELAPSED, pw); pw.print(" = "); pw.println(sdf.format(new Date(nextWakeupRTC))); + pw.print("Num time change events: "); pw.println(mNumTimeChanged); if (mAlarmBatches.size() > 0) { pw.println(); @@ -1619,6 +1621,9 @@ class AlarmManagerService extends SystemService { removeImpl(mTimeTickSender); rebatchAllAlarms(); mClockReceiver.scheduleTimeTickEvent(); + synchronized (mLock) { + mNumTimeChanged++; + } Intent intent = new Intent(Intent.ACTION_TIME_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);