If your Android alarm rings late or not at all, the cause is almost always battery optimization and Doze delaying a background-scheduled alarm — not a broken ringtone. The fix is an alarm that uses exact alarms, which Android treats as time-critical and fires on time even when the phone is idle or the app has been closed for hours.
What’s actually happening
To save power, Android batches background work. Doze mode (when the phone is still and the screen is off) and battery optimization defer apps’ background tasks to occasional maintenance windows. An alarm scheduled as ordinary background work gets caught in that batching — so it fires late, or the window never lines up and it’s effectively skipped.
This is why a “louder ringtone” never fixes the problem: the alarm isn’t quiet, it’s late or absent. Volume is irrelevant if the alarm never triggers.
The fix: exact alarms
Android provides a time-critical path: exact alarms (SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM). An alarm scheduled this way is exempt from Doze deferral and fires at the precise wall-clock time you set — locked screen, idle device, app closed for hours, it doesn’t matter.
| Background-scheduled alarm | Exact alarm | |
|---|---|---|
| Affected by Doze / battery optimization | Yes — can be delayed or skipped | No — exempt |
| Fires when app is closed | Unreliable | Yes |
| Fires when phone is locked/idle | Unreliable | Yes |
| Intended for | Deferrable sync, cleanup | Alarms, reminders, calendar |
Google explicitly lists alarm clocks as the textbook use case for this capability, so a true alarm app is expected to use it.
Two more things that make an alarm reliable
Exact timing gets the alarm to fire. Two more pieces make sure you hear it:
- The alarm audio channel. Playing on Android’s dedicated alarm channel keeps it at full volume even when media is muted or Do Not Disturb is on.
- Full-screen over the lock screen. A full-screen intent launches the ringing screen over your lock screen, instead of being downgraded to a silent, tap-to-open notification.
A backstop in Android settings
Even with exact alarms, you can add belt-and-braces reliability: in Settings → Apps → [your alarm app] → Battery, set it to Unrestricted (or disable battery optimization for it). This prevents aggressive OEM power managers from interfering.
An alarm built on all three
Arisely uses exact-time alarms, plays on the alarm audio channel with an extra-loud boost, and shows full-screen over the lock screen — so it fires on time and loud even when the phone is locked or the app has been closed for hours. Free, no account, and the free version’s banner ad never appears on the ring screen.
Download Arisely on Google Play
Related: How to stop sleeping through your alarm · All articles