Mishaal Rahman: "Android 14 seems to have quietly eliminated a trick some apps were using to keep themselves alive when the OS tried to kill them"

limerod@reddthat.commod to Android@lemdro.id – 104 points –
Mishaal Rahman (@MishaalRahman@androiddev.social)
androiddev.social
15

I seriously don't get why this can no longer be controlled by the user. I like my weather and music to be readily available, everything else can be killed

Android already has a setting for that. Disable battery optimization for apps you want to run in the background. Samsung goes much further with their sleeping, deep sleeping, and never sleeping lists.

I feel like half the time that doesn't work though :/

Because it's cached and gets killed when Android needs to free up resources.

Works perfectly for me. Do you have a Samsung device? Because they basically ignore it.

This has not been true for me since oneui 4 and currently oneui 5. Apps can continue running however long within reason(doze). The ones that need to be running 24/7 like accubattery, tasker work fine when you set battery optimization to unrestricted. Others like adguard power through without issue. Only apps that take too many resources or frequent crashes that slow down your device get automatically closed — shown in device care. The only times my apps restart is when running heavy games and apps that take gigs in memory.

1 more...

I'm sure this will have good and bad consequences.

I think two great ways to manage this are

1: using permissions the user can see and grant/deny "Allow persistent background usage" or something like that with a tooltip or something that warms the user about resource usage. IIRC, this is already a thing in Android 14.

2: providing visibility into background app usage and history. They do this to some degree, but it's not as good as it could be. Especially when I want to know what is draining my battery when my phone is in my pocket.

Mostly bad

It would be good to protect against malware. Bad for apps you legitimately want to run in the background. As usual it seems like a tradeoff between giving the user a choice while not overwhelming uninformed users.

I want a option to turn that off or exclude apps (just put it in dev settings)

Navigate to the specific app details in settings -> Battery usage -> set to Unrestricted. There, it's off. Just like it was for the past however many years since Doze was first implemented. Or just turn off adaptive battery to disable this for all apps and enjoy your awesome battery life.

This fix is for apps that are set to optimized/restricted and are avoiding being killed.

I've encountered them being killed off as well from time to time.

Does your phone happen to be made by one of the vendors ranking high on this list? If so, that's not on Google (well, you could argue that Google could take more control over Android and force vendors not to do this, but that's another discussion - now we're talking about a fix Google made for apps evading its battery optimizations).

Because I've personally had no problem with apps like AccuBattery and GadgetBridge staying awake when set to unrestricted.