Skip to content
Roosta

Help centre

Android alarm not working? Battery settings are usually why

Android alarms usually fail because manufacturer battery optimisation killed the app. Device-specific fixes for Samsung, Xiaomi, OnePlus and stock Android.
AndroidLast updated

The short answer

On Android, a third-party alarm that does not fire is usually being killed by manufacturer battery optimisation. Set the app to Unrestricted battery usage, enable Autostart where the manufacturer offers it, and grant the Alarms & reminders permission.

The universal fixes

  1. 1Settings → Apps → your alarm app → Battery → set to Unrestricted.
  2. 2Settings → Apps → Special app access → Alarms & reminders → allow your alarm app. Recent Android versions require this for exact alarms.
  3. 3Check the Alarm volume stream specifically by pressing a volume key and expanding the sliders.
  4. 4Confirm the app is not in any "sleeping" or "restricted" list your manufacturer maintains.

Manufacturer-specific settings

  • Samsung: Settings → Battery and device care → Background usage limits. Remove the app from Sleeping apps and Deep sleeping apps. Also disable Adaptive battery if alarms fail intermittently.
  • Xiaomi, Redmi and POCO: Settings → Apps → Manage apps → your app → enable Autostart, and set Battery saver to No restrictions. Also lock the app in the recents view so the task killer skips it.
  • OnePlus and Oppo: Settings → Battery → Battery optimisation → set the app to Don’t optimise, and disable Deep optimisation and Sleep standby optimisation.
  • Huawei: Settings → Battery → App launch → set the app to Manage manually and enable all three toggles.

What a well-built alarm app does instead

All of the above is a workaround for apps that keep their schedule inside their own process. An app that registers alarms with the system alarm manager and posts a foreground service when ringing does not depend on staying alive in the background, which removes most of this class of failure.

That is how Roosta is built on Android. The settings above are still worth applying. Manufacturer skins are unpredictable, but they should not be the difference between waking up and not.

Why Android is different from iPhone here

Android is far more aggressive than iOS about stopping apps from running in the background, and it has been getting more aggressive with each release. Doze mode suspends background work when the device has been still and unused for a while. App Standby Buckets demote apps you have not opened recently, giving them progressively fewer chances to do anything at all.

Both features exist for a good reason, and both are why an Android phone can sit in a drawer for a week and still have battery. They are also why an alarm app that keeps its own schedule can be perfectly reliable for the first fortnight and then quietly stop working, usually on a weekend when you had not opened it for a few days.

Android provides a specific mechanism for alarms that is exempt from all of this. An app that uses it is unaffected by Doze; an app that does not is at the mercy of it.

Where the schedule lives decides whether the alarm survives. An alarm held inside an app depends on that app still running; one registered with the operating system does not.

Fix 2: manufacturer battery managers

Stock Android battery optimisation is only half the story. Most manufacturers layer their own, more aggressive app killer on top, with its own separate settings that the standard Android battery screen does not reveal. These are the single most common cause of missed alarms on Android, and they vary by brand.

  1. 1Samsung: Settings, then Battery and device care, then Battery, then Background usage limits. Make sure the alarm app is not listed under Sleeping apps or Deep sleeping apps, and turn off Put unused apps to sleep.
  2. 2Xiaomi, Redmi and POCO: open Settings, then Apps, find the alarm app, and set Autostart on and Battery saver to No restrictions. Then open the recent-apps view and lock the app so it is not cleared.
  3. 3Huawei and Honor: Settings, then Battery, then App launch. Switch the app from Manage automatically to Manage manually and enable all three toggles, including Run in background.
  4. 4Oppo, Realme and OnePlus: Settings, then Battery, then set the app to Allow background activity or Don’t optimise, and check any Startup manager or Auto-launch list.
  5. 5Vivo: Settings, then Battery, then Background power consumption management, and allow high background power use for the app.

Fix 3: the alarms and reminders permission

From Android 12 onwards, setting an alarm for a precise time requires its own permission. Most alarm apps are granted it automatically, but it can be revoked, and a revoked permission means the app can only ask for an approximate time. An approximate alarm can drift by several minutes, which is the difference between a working alarm and one that fires after your train.

  1. 1Open Settings, then Apps, and choose the alarm app.
  2. 2Look for Alarms & reminders, which may sit under Special app access or Additional permissions depending on the manufacturer.
  3. 3Make sure it is allowed. If the option is absent, your Android version does not gate it and there is nothing to change.

Fix 4: Do Not Disturb and the alarm volume slider

Android gives alarms their own audio stream and their own volume slider, separate from ring and media volume. It is possible to have music at full volume and alarms at zero without ever noticing.

Do Not Disturb allows alarms by default, but unlike iOS this is an exception you can turn off. If you have ever built a custom Do Not Disturb schedule, check that schedule’s own exception list as well as the global one.

  1. 1Settings, then Sound & vibration, and check the Alarm volume slider specifically.
  2. 2Settings, then Notifications, then Do Not Disturb, and confirm Alarms is an allowed interruption.
  3. 3If you use a bedtime or sleep routine, open it and check its exceptions too. Routines can apply their own Do Not Disturb rules.

Fix 5: check what the app is actually doing

If you have applied everything above and alarms still fail intermittently, the problem is likely the app rather than the phone. Intermittent failure after idle days is the signature of an app holding its own schedule and being suspended.

Android alarm failures cluster into four causes: battery optimisation suspending the app, a manufacturer battery manager doing the same more aggressively, a missing exact-alarm permission, and Do Not Disturb rules.

Roosta hands the schedule to the Android alarm service the moment you save an alarm, using the mechanism that is exempt from Doze. That is why swiping the app away does not cancel an alarm, and why a phone that has been idle for days still rings. The manufacturer settings above are still worth applying, because manufacturer skins are unpredictable, but they should not be the difference between waking up and not.

Test it properly

Testing an alarm two minutes from now with the app open proves almost nothing, because the failure mode you are chasing only appears after the phone has been idle. A real test takes a night.

  1. 1Apply the battery settings above, then do not open the app again.
  2. 2Set an alarm for the next morning and leave the phone unplugged, screen off, untouched overnight. Doze needs stillness to engage, so a phone on a charger being handled is not a fair test.
  3. 3If it rings after a full night idle, it will keep ringing. If it does not, the app is holding its own schedule and no amount of battery configuration will fully fix that.

Frequently asked

Why does my Android alarm only work when the app is open?

The app is scheduling alarms inside its own process, and Android is killing that process when it is not in the foreground. Set the app to Unrestricted battery usage and enable Autostart if your manufacturer offers it.

Why do Samsung phones miss alarms?

Samsung’s Background usage limits feature puts unused apps into Sleeping apps or Deep sleeping apps, which stops them scheduling work. Remove your alarm app from both lists in Settings → Battery and device care.

Why does my Android alarm work some days and not others?

Intermittent failure after idle days is the signature of battery optimisation. Doze mode and App Standby suspend apps the system considers unused, so an alarm app you have not opened for several days gets fewer chances to run. Setting it to Unrestricted battery usage, and clearing it from the manufacturer’s own app-killer list, is the fix.

Does swiping the alarm app away stop the alarm?

It depends entirely on how the app scheduled it. An alarm registered with the Android alarm service survives the app being swiped away, force-quit or updated. An alarm held in the app’s own background process does not, and swiping it away cancels the alarm without telling you.

What is the Alarms & reminders permission for?

From Android 12 it gates precise alarm timing. Without it an app can only request an approximate time, which the system is free to shift by several minutes to batch it with other work. Find it under Settings, then Apps, then the app, and check it is allowed.

Why is Samsung worse than other Android phones for this?

Samsung adds its own layer on top of Android’s battery management, including Sleeping apps, Deep sleeping apps and Put unused apps to sleep, all of which can suspend an alarm app independently of the standard battery setting. Most large manufacturers do something similar; the settings just have different names.

Do I need to keep the alarm app open for it to work?

No, and any app that requires it is not scheduling alarms properly. A correctly built alarm app hands the schedule to the operating system when you save it, and the app being closed after that is irrelevant.

An alarm that cannot quietly fail.

Roosta registers alarms with the operating system rather than scheduling them itself, and nothing on the alarm path needs a network. Most of the failures on this page cannot happen to it.

7-day free trial on the yearly plan · No ads, ever · Works offline