Why All Your Notifications Arrive at Once After Standby
Doze batches notifications while the phone is idle and releases them together the moment you wake it, which looks like a flood but is working as designed.
You left your phone on the nightstand for an hour, screen off, nobody touching it. When you pick it up, six notifications land inside the same two seconds: a message, a calendar reminder, two app updates, a like on a photo, a weather alert. None of them are actually two seconds old. Some have been waiting for most of that hour. Your phone was not broken and nothing was stuck. This is Doze, Android's idle power mode, releasing everything it held back the moment it decided the phone was awake again.
What doze mode actually suspends
Doze exists to stop a phone sitting untouched on a nightstand or in a pocket from burning battery on background work nobody is watching. Once the screen has been off for a while and the phone has not moved, Android defers the things most apps do quietly in the background: network syncs, scheduled jobs, and most alarms. Instead of letting every installed app check in with its server whenever it feels like it, the system holds that work and lets it through only during short maintenance windows that it opens periodically.
This is a different mechanism from the manufacturer battery managers that get most of the blame for silently killing background apps on phones from Samsung, Xiaomi, and others. Those tools can stop an app's background process outright. Doze is Android's own layer underneath all of that, and it runs on every phone regardless of brand, which is why even a phone with every manufacturer restriction turned off still shows this bursty pattern once in a while.
Why notifications still get through at all
If Doze deferred everything equally, a messaging app would be unusable the moment the screen turned off, and that is not what happens. Push messages arrive through Firebase Cloud Messaging, and a message sent with high priority is treated differently from a background sync. A high priority push is allowed to wake the device briefly outside the normal maintenance window, specifically so the notification it carries can be posted right away. That exception is documented Android behavior, not something any individual app negotiates for itself. It is the reason your messaging apps mostly feel instant even on an idle phone, while a weather app or a fitness tracker's cloud sync visibly lags behind.
Whether a given notification gets this treatment depends on how the app that sent it built its push messages, not on anything you control from the notification settings screen. An app that sends everything as a low priority background sync will always wait for the next maintenance window, however important the content of that message actually is to you.
The high priority exception has limits
High priority delivery is not a blanket exemption from Doze. It is a narrow door that opens just long enough to hand off that one message, and it does not pull the rest of that app's pending background work through with it. If the same app also had a sync job queued, a cache refresh waiting, or anything else scheduled for the next maintenance window, that work still waits. Only the notification payload itself gets the fast path.
It is also not something Doze guarantees forever. Android reserves the right to throttle high priority messages from an app that sends them too often without the user actually opening the app, treating a flood of "urgent" pushes as a sign the app is misusing the exception rather than a genuine string of time sensitive events. A well behaved app uses high priority sparingly, for things that are actually urgent, and lets everything else wait for the normal window like anything else.
Why they land in a burst instead of a trickle
The maintenance windows themselves explain the flood you see when you unlock the phone. While the phone is idle, Doze opens these windows on a schedule that starts frequent and stretches further apart the longer the phone stays untouched, specifically so a phone left alone for hours is not quietly waking itself up every few minutes to check in. Every piece of deferred work across every app on the phone becomes eligible the moment one of these windows opens, and it all runs in that same short span rather than being spread out over the time it was actually waiting.
Unlocking the phone has a similar effect on its own. The moment the screen comes on and the phone is in active use, Android exits Doze immediately, and anything still queued is free to run without waiting for the next scheduled window at all. That is why the six notifications in the opening example did not trickle in over the hour they were actually generated. They were held in exactly two places, a maintenance window partway through and the moment you picked the phone up, and both of those release everything at once rather than one message at a time.
What you can and cannot change about it
You cannot turn Doze off, and you would not want to if you could. It is a core piece of what makes a phone last a full day, and disabling it for every app would mean every background process on the phone running constantly, whether or not it ever sends you anything worth seeing. What you can do is decide, app by app, which ones should be allowed to ignore Doze and manufacturer battery restrictions entirely for the handful of apps where a delay actually matters to you: open Settings, find the app, and set its battery access to Unrestricted. The same setting that fixes Samsung's sleeping apps problem and the wider battery optimization issue applies here, because the two mechanisms sit on top of each other and an app can clear one restriction while still sitting under the other.
Unrestricting every app defeats the purpose and drains the battery faster for no benefit, since most apps genuinely do not need to be exempt. The apps worth the exception are the ones where a late arrival costs you something: messages, banking alerts, anything time sensitive. Everything else can keep waiting for the next window without you noticing or minding.
One more thing worth knowing if a burst of notifications ever includes one you want to revisit later: Android's own notification log and shade are wiped on reboot, the same way they are cleared by a restart for reasons that have nothing to do with Doze, so a message that only just surfaced from a maintenance window is no safer than any other once the phone restarts. Keeping a separate, disk based record is the only way around that, which is what ReNotify does: it logs every notification locally as it lands, burst or not, so a delayed arrival does not also become a lost one.