diff options
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java index f9c8e0b551bd..b982d1253e21 100644 --- a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java @@ -1795,6 +1795,10 @@ public class AlarmManagerService extends SystemService { mUseFrozenStateToDropListenerAlarms = Flags.useFrozenStateToDropListenerAlarms(); mStartUserBeforeScheduledAlarms = Flags.startUserBeforeScheduledAlarms(); + if (mStartUserBeforeScheduledAlarms) { + mUserWakeupStore = new UserWakeupStore(); + mUserWakeupStore.init(); + } if (mUseFrozenStateToDropListenerAlarms) { final ActivityManager.UidFrozenStateChangedCallback callback = (uids, frozenStates) -> { final int size = frozenStates.length; @@ -1913,10 +1917,6 @@ public class AlarmManagerService extends SystemService { Slog.w(TAG, "Failed to open alarm driver. Falling back to a handler."); } } - if (mStartUserBeforeScheduledAlarms) { - mUserWakeupStore = new UserWakeupStore(); - mUserWakeupStore.init(); - } publishLocalService(AlarmManagerInternal.class, new LocalService()); publishBinderService(Context.ALARM_SERVICE, mService); } @@ -3863,7 +3863,7 @@ public class AlarmManagerService extends SystemService { long nextNonWakeup = 0; if (mAlarmStore.size() > 0) { long firstWakeup = mAlarmStore.getNextWakeupDeliveryTime(); - if (mStartUserBeforeScheduledAlarms) { + if (mStartUserBeforeScheduledAlarms && mUserWakeupStore != null) { final long firstUserWakeup = mUserWakeupStore.getNextWakeupTime(); if (firstUserWakeup >= 0 && firstUserWakeup < firstWakeup) { firstWakeup = firstUserWakeup; |