diff --git a/core/java/android/app/AlarmManager.java b/core/java/android/app/AlarmManager.java index 3221c5d895431..620e5cf374ca8 100644 --- a/core/java/android/app/AlarmManager.java +++ b/core/java/android/app/AlarmManager.java @@ -226,11 +226,7 @@ public class AlarmManager { @Override public void doAlarm(IAlarmCompleteListener alarmManager) { mCompletion = alarmManager; - mHandler.post(this); - } - @Override - public void run() { // Remove this listener from the wrapper cache first; the server side // already considers it gone synchronized (AlarmManager.class) { @@ -239,6 +235,11 @@ public class AlarmManager { } } + mHandler.post(this); + } + + @Override + public void run() { // Now deliver it to the app try { mListener.onAlarm();