Blog/ Mobile email

Android Doze Mode and Delayed Email: What's Happening

Nafiul HasanNafiul Hasan· 12 min read
Diagram showing Android Doze mode pausing background email sync and deferring notifications on an idle, unplugged phone

The short answer

Android Doze mode pauses background work, including email sync, when your phone is idle and unplugged. New mail waits until a maintenance window opens, which can be over an hour away. High-priority push notifications should bypass Doze, but OEM battery savers on Samsung, Xiaomi, and others can block even those.

Android Doze mode delays email notifications by deferring background sync. Learn how Doze works, when high-priority push bypasses it, and how to fix late email.

On this page
  1. 01What Android Doze mode actually does
  2. 02Before you start: two types of delay to distinguish
  3. 03Steps to stop Doze from delaying your email
  4. 04Does high-priority FCM bypass Doze? The push exception explained
  5. 05Platform differences: Doze, OEM killers, and App Standby Buckets
  6. 06App Standby Buckets: the per-app throttle on top of Doze
  7. 07What to do when the standard fixes do not work
  8. 08A faster way: server-side sync that does not depend on the phone

You set your phone down, it goes dark, and thirty minutes later a colleague asks why you never replied to the meeting rescheduling thread you missed entirely. The email arrived on time; your phone just did not tell you. The culprit is almost certainly Android Doze mode — a battery-saving feature that intentionally pauses background work, including the sync jobs your email app relies on, whenever the phone sits idle and unplugged.

This post explains exactly what Doze mode does, what it exempts from restrictions, why high-priority push notifications are supposed to bypass it, and where OEM battery-management layers on Samsung, Xiaomi, and Huawei devices make the problem significantly worse. Understanding the mechanism is the foundation for fixing the delay, because Doze and OEM killers are different problems with different solutions.

What Android Doze mode actually does#

Android introduced Doze in version 6.0 (Marshmallow, 2015) and extended it in Android 7.0. When your phone is unplugged and the screen has been off for a few minutes, Android starts a Doze cycle. There are two stages.

Light Doze begins whenever the screen turns off. It restricts network access for apps, prevents sync adapters from running, and blocks most wakelocks. Your email app cannot reach the mail server. Android 7 extended light Doze to apply even when the phone is moving — so just carrying the phone in your pocket is no longer enough to prevent it.

Deep Doze kicks in when the phone is also stationary — left on a desk, in a bag, on a nightstand. Deep Doze adds further restrictions: no GPS, no Firebase Cloud Messaging for normal-priority messages, and tighter wakelock controls. Background processes are effectively frozen.

Both stages include maintenance windows: scheduled intervals where Android briefly exits Doze, lets deferred jobs run, and then returns to Doze. The first window appears roughly 30 to 60 minutes after Doze starts. Subsequent windows space out progressively, reaching roughly two hours apart during extended Doze. An email that arrives while your phone is in deep Doze can wait over an hour before any notification fires.

Doze is working as intended — the fix is targeted, not global

Android Doze was designed to extend standby battery life, and it does that job well. The trade-off is that background network access is deferred, which hits polling-based email sync directly. Disabling Doze system-wide is not the right fix. The goal is to ensure your email app has the correct exemptions or uses server-side push, so it is not relying on on-device sync jobs to detect new mail.

Before you start: two types of delay to distinguish#

Before changing settings, it helps to know which delay you are dealing with. Android Doze and OEM battery killers are separate systems, and the steps for each differ.

Doze is a stock Android feature present on every device running Android 6 or later. It defers background sync during idle periods and grants maintenance windows on a schedule. Fixing Doze usually means exempting the email app from battery optimization or verifying the app uses high-priority push.

OEM battery management sits on top of Doze and is specific to the manufacturer. Samsung One UI calls it Adaptive Battery, Xiaomi MIUI has Background Activity Restrictions, Huawei EMUI has App Launch management. These layers are often more aggressive than stock Doze and can block apps from receiving even high-priority FCM messages. If delays persist after addressing Doze, the OEM layer is the next suspect.

Steps to stop Doze from delaying your email#

  1. 1

    Exempt the email app from battery optimization

    Go to Settings > Apps > [your email app] > Battery > Battery optimization. Set it to Unrestricted or Not optimized. The exact path varies by Android version and OEM, but this is the single most effective step — it allows the app to run background processes and receive wake signals even in deep Doze.

  2. 2

    Enable unrestricted background data

    In Settings > Apps > [your email app] > Mobile data, enable Background data and, if present, Unrestricted data usage. Without this, Android may throttle the app's network access even during maintenance windows.

  3. 3

    Confirm auto-sync is on

    Pull down the notification shade and check that the Auto-sync toggle is enabled, or go to Settings > Accounts > Auto-sync data. If auto-sync is off, sync adapters cannot run even when a maintenance window opens.

  4. 4

    Address OEM-specific power management

    On Samsung: Settings > Battery > Background usage limits, disable restriction for the app. On Xiaomi: Security app > Battery > Manage app activity, set No restrictions. On Huawei: Settings > Apps > Startup, toggle the app to Manual and enable all three background permissions. Check your manufacturer's current support page — these menus move between OS versions.

  5. 5

    Whitelist via ADB for the most reliable fix

    As a power-user option, run adb shell dumpsys deviceidle whitelist +<package.name> from a computer with USB debugging enabled. This permanently exempts the app from all Doze restrictions without relying on the battery settings UI, which OEM layers can sometimes override.

Does high-priority FCM bypass Doze? The push exception explained#

Firebase Cloud Messaging has two priority levels: normal and high. Normal-priority FCM messages are deferred like any other background work during Doze — they queue until the next maintenance window. High-priority FCM messages are different: Android grants a brief network wakeup specifically to deliver them, even in deep Doze. This is the designed path for time-sensitive notifications, confirmed in the Android developer documentation.

In practice, three things can break the guarantee. First, the email app may not use high-priority FCM at all — many apps poll on a schedule rather than relying on server push, which means they are fully subject to Doze sync windows. Second, OEM battery-management layers on Samsung, Xiaomi, and Huawei devices can intercept and drop FCM messages before the app processes them, regardless of priority. Third, if FCM connectivity is disrupted or an outdated registration token is cached, high-priority messages may arrive late.

Check whether your email app uses push or polling by reviewing its support documentation. An app that lists a sync interval (every 15 minutes, every hour) is polling. An app that mentions IMAP IDLE or real-time push is using server-side detection. The distinction matters because polling apps cannot be fully fixed by Doze exemptions alone — the architecture is the bottleneck.

Two notification paths on Android: a polling app waiting for the next Doze maintenance window versus a server-side push app sending high-priority FCM directly to the device
Polling-based sync waits for a maintenance window; server-side push with high-priority FCM wakes the device immediately — when implemented correctly and not blocked by OEM killers.

Platform differences: Doze, OEM killers, and App Standby Buckets#

Doze behavior is not uniform across Android. The Android version, the device manufacturer, and which extra battery-management features are active all change how aggressively background sync is restricted.

Platform / OEMDoze baselineExtra battery layerTypical email notification impact
Stock Android (Pixel) 6+Standard light + deep DozeNone beyond stockDelays limited to sync windows; high-priority FCM generally works
Stock Android 7+Light Doze applies even when device is movingApp Standby Buckets add per-app background limitsBroader restrictions; frequent-use apps stay in high buckets
Samsung One UI (Android 10+)Standard DozeAdaptive Battery, App Power Management, background restrictionAggressive app kill; FCM can be dropped; manual whitelist required
Xiaomi MIUI 12+Standard DozeBackground Activity Restrictions, aggressive auto-start controlsSevere delays without per-app exemptions in the Security app
Huawei / Honor EMUIStandard DozeApp Launch management, ultra-aggressive background killHardest to fix; some versions block FCM even when whitelisted
OnePlus OxygenOS 11+Standard DozeBattery optimization, moderate app standby controlsModerate; standard exemptions usually sufficient on recent versions
Motorola / near-stockStandard DozeMinimal extrasClosest to stock behavior; standard steps resolve most delays

App Standby Buckets: the per-app throttle on top of Doze#

Android 9 (Pie) introduced App Standby Buckets alongside Doze. Where Doze is a system-wide mode triggered by device idle state, App Standby Buckets are per-app limits based on how often you interact with each app. Android assigns every app to one of five buckets: Active, Working Set, Frequent, Rare, and Restricted.

The bucket determines how often the app can run background jobs and access the network — independently of whether the device is in Doze. An email app you open every day stays in Active or Working Set and gets generous background access. An app you rarely open may fall into Rare and be limited to a few background operations per day, regardless of Doze state.

You cannot directly set an app's bucket, but regular use keeps it in a high bucket automatically. Exempting an app from battery optimization grants it effective Active-bucket behavior for background jobs, which addresses both Doze restrictions and Standby Bucket throttling with a single setting.

Battery optimization exemption covers both Doze and App Standby Buckets

Setting an app to Unrestricted in battery settings grants it the equivalent of Active bucket status — it can run sync adapters, hold wakelocks, and access the network without Doze interruption. This is simpler than managing Doze and Standby Buckets as two separate systems.

What to do when the standard fixes do not work#

If you have applied every exemption and email notifications still arrive late, the problem is likely one of three things: the app uses polling rather than server-side push, the OEM layer is overriding system exemptions, or FCM connectivity is disrupted.

Verify whether your app uses push or polling. Open the app's support documentation and look for terms like IMAP IDLE, real-time sync, or push notifications. Apps that list a sync interval are polling and will always be subject to maintenance windows regardless of battery optimization settings — the architecture imposes the delay, and exemptions only shorten it.

If an OEM layer is overriding exemptions, the solution is manufacturer-specific and sometimes requires third-party tools like Tasker or Naptime to prevent aggressive app killing. On heavily restricted devices such as some Huawei models, the delay may be structurally unavoidable without root access. The dontkillmyapp.com project documents OEM-by-OEM workarounds updated through mid-2026; verify steps against your device's current OS version.

If FCM connectivity is the issue, resetting network settings clears the cached FCM registration token and often restores normal delivery. Go to Settings > General Management > Reset > Reset network settings. The path varies by OEM. This does not erase app data.

Do not disable Doze system-wide

Some guides suggest disabling Doze globally via adb shell dumpsys deviceidle disable. This removes all Doze restrictions but also eliminates the battery savings Doze was designed to provide. App-level exemptions are targeted and reversible. System-level Doze disable is a debugging step, not a production fix, and may affect warranty support on some devices.

A faster way: server-side sync that does not depend on the phone#

The core reason Doze delays email notifications is that background sync runs on the phone. When the phone sleeps, the sync stops. Apps built around server-side sync move that work entirely off the device: the server maintains a persistent connection to your mailbox, detects new mail the instant it arrives, and pushes a high-priority notification to your phone. The phone never has to run a background job to discover new mail — it only receives the push.

We build AI Emaily, an AI-native email client that syncs from our servers rather than from your phone. New mail triggers a server-side notification rather than a sync job on the device. On Android, AI Emaily currently runs as a PWA — a native Android app is on our roadmap — so push goes through Chrome's push service, which routes via high-priority FCM. That architecture reduces exposure to Doze-induced delays compared to apps relying on on-device sync. AI Emaily also triages your inbox and drafts replies in your voice, so the notifications that reach you are the ones worth acting on. See aiemaily.com for a full feature overview or aiemaily.com/pricing for plan details. A 7-day free trial is available on Pro and Autopilot plans.

Frequently asked

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Get email notifications that arrive when they should

AI Emaily syncs from our servers, not your phone — new mail triggers a server-side push rather than waiting for a background sync window. Works with Gmail, Outlook, and every IMAP account. 7-day free trial on Pro and Autopilot plans at aiemaily.com.

  • 7-day free trial
  • Cancel anytime
  • Every provider