Recently I got a new phone and immediately had trouble with my notifications coming in on time. Emails, calendar alerts, even alarms were being delayed up to 15 minutes.
This isn't the first time I've had problems like this. When Doze first came out back in Android 6 around 2017, it caused me a lot of grief, until I figured out how to whitelist apps and disable it. However, none of my well-known fixes and workarounds were effective.
A new sinister menace has arisen. It's the Cached Apps Freezer, and it must die.
Before I wrote this post, I did a lot of research and found very little information. It's clear that this feature and it's negative side effects is not well know to the Android user community. The one exception was the Termux community and it's dev agnostic-apollo, who had some excellent notes which I link to below.
The Cached Apps Freezer first appeared in Android 11 QPR3. It's a feature that still seems half baked, like it's in beta, but it's being enabled by default on some devices. Notably, all Google Pixel devices have it enabled by default, but I've read that some Samsung devices also have it enabled by default.
So what does it do? In basic English, it periodically pauses and unpauses any app that isn't in the foreground so that it can't run. The process isn't killed, but it can't do anything until it gets unfrozen. If you watch your logcat, you will regularly see ActivityManager messages with the word "freeze" and "frozen". It's a power saving feature and you will find a plenty of ignorant users praising how it makes their battery last longer, but you won't find any mention of the side effect of delaying notifications.
Note that you might have seen the term "frozen" and "freeze" before in relation to Android apps, where the app is still installed but disabled. This is not the same thing and is not related in any way.
If battery life is your primary concern, then feel free to turn this thing on. It definitely works, but don't expect your notifications to come in right away. They might come in instantly, but most of the time they are going to be delayed up to 15 minutes.
So, what can you do about it if you want it disabled?
Unfortunately this feature has no user-facing control. Google didn't create any kind of knobs or controls for the end-user. Maybe this is intentional, or maybe it's just a half-baked feature. Either way, your only option is to disable it completely.
There are two ways to disable it:
Option 1: Enable Developer Options and disable "Suspend execution for cached apps". You must reboot to apply the change.
Option 2: Run the following command on an adb shell, a terminal, or wherever, and then reboot: "device_config put activity_manager_native_boot use_freezer false".
Below are a bunch of links with reference info.
https://source.android.com/docs/core/perf/cached-apps-freezer
https://www.xda-developers.com/hidden-changes-android-11-source-code/
https://www.reddit.com/r/termux/comments/13z7cpg/prevent_termux_from_closing/
The 21st century version of a DOS TSR program?
You are very confused. Not similar or related to in any way shape or form.
Confused? No. Seeking an apt analogy for this situation? Yep. Can you provide one, please?