• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Help Why are unwanted apps always running in the background? Android flaw?

cdl

Android Enthusiast
Feb 4, 2010
448
60
I know this topic has been discussed all over the internet, but I still can’t get my head around it, and was hoping someone could help me clarify.


On my Windows PC, the only programs which are running at any given time are, in summary, the ones I explicitly run and the ones which are set to start automatically or run in the background (services, autostart, etc.). I may install 10 email clients or 10 browsers to try them, but they won’t be running all the time unless I explicitly choose to.


What exactly happens on Android? Is it correct to say that apps may be in the background even if you didn’t explicitly run them? I am often told that the OS is smart enough to recognise and close the apps which don’t need to run, but, still, why have unwanted apps running in the background? Isn’t this extremely inefficient?


On every Android I have had over the last 6 years, checking the battery consumption always revealed a certain amount of battery consumption by apps I did not explicitly choose to run.


Sony’s Stamina mode, which I understand is somewhat similar to Marhsmallow’s doze functionality, can allow only whitelisted apps to connect to the internet when the phone is not in use. I honestly do not understand why this is an extra functionality and not a core feature of the OS: on what planet would one want all apps to connect to the internet all the time, rather than only the ones you have explicitly run? Stamina is not needed on a Windows PC because, despite all the flaws Windows has, it doesn’t run all the apps in the background for no apparent reason! If the Android OS really were smart enough to understand which apps need closing, then Stamina mode wouldn’t make a difference, yet on my Sony it does, big time.


Can you please help me understand? Thanks
 
There are a number of resources which describe in detail how Android manages background processes and memory. Two great ones which quickly spring to mind:
Why you don't need a task killer
Putting to rest the myths about Task Killers/RAM Optimizers and the like

In short, Android (and Linux, upon which Android is built) likes to keep its memory full of cached processes so that they are ready for you to use at a moment's notice.

Your question, however, seems to be more about applications consuming power in the background rather than just memory. Many apps will periodically wake themselves to perform some function, which may include anything from basic housekeeping to downloading weather information or checking location every now and then. Any app which needs to provide you with notifications will do this (social, email, and other messaging apps in particular). Some will let you choose the update interval, but many just rely upon Android to manage their needs accordingly.

It seems like each recent Android release has worked to improve upon that capability. Features like Doze prevent apps from continually "checking in" while the device is sleeping. Android also makes a conscious effort to align the application wakeups so that all the applications which need to check in on a set schedule can do it at the same time - maximizing the time the device can sleep between those checks.

Android does actually include something like what you describe to restrict apps from abusing data in the background, though it may be implemented differently depending on the manufacturer. On my Nexus 6P*, I can go to Settings > Apps > App name > Data usage and toggle a "Background data" permission. Remove that from an app and it won't be able to use cellular data when you're not interacting with it directly.

* My 6P is currently running the Android 7.0 preview, but I'm pretty certain that setting is also present on Android 6.0.

Other manufacturers (Samsung, Huawei, etc) also like to build in their own task killers "battery management features" which fight with Android's included task/memory management in the same way a third-party task killer would. Sure, you may get a little bit of extra battery life, but you run into problems with applications which don't update (like weather apps) or don't notify you (email). Approaches like that ruin the Android experience.
 
Upvote 0
On my Windows PC, the only programs which are running at any given time are, in summary, the ones I explicitly run and the ones which are set to start automatically or run in the background (services, autostart, etc.). I may install 10 email clients or 10 browsers to try them, but they won’t be running all the time unless I explicitly choose to.
Download this diminutive utility and start up 'Autoruns.exe' (you don't even need to install it unless you want to). Note you should always be wary whenever you read some random comment on any public forum telling you to run some exe file but Autoruns has been around for decades with a solid reputation.
https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
https://en.wikipedia.org/wiki/Sysinternals
You might be surprised at all the things that are running in the background of any Windows installation. Start up any browser and visit a handful of sites, and at that point there could be a dozen more processes. Install a program like Wireshark and you'll see all the things your apparently idle Windows box is sending out into the Internet.
https://www.wireshark.org/
Android does run a lot of things in the background but at least it's more transparent about it.
 
Upvote 0
In short, Android (and Linux, upon which Android is built) likes to keep its memory full of cached processes so that they are ready for you to use at a moment's notice.
But is this the best approach for a smartphone, for which limiting power and data consumption is more important than for desktop or server PCs running Linux?

In other words, on a Linux workstation I may want processes to run at a moment's notice and may not care if this results in additional power drain. In a smartphone, I prefer waiting half a second for an app to load if this saves battery!

Your question, however, seems to be more about applications consuming power in the background rather than just memory.
Yes!
Many apps will periodically wake themselves to perform some function, which may include anything from basic housekeeping to downloading weather information or checking location every now and then. Any app which needs to provide you with notifications will do this (social, email, and other messaging apps in particular). Some will let you choose the update interval, but many just rely upon Android to manage their needs accordingly.
And this, to me, is one of Android'e key failings. A well-coded weather app, for example, will let the user set the update interval, including 'never' as an option. Fine.

But why do games or other apps I use rarely, and which are not meant to provide constant notifications like an email client or a weather app, wake up the phone, connect to the internet, and consume the battery? I have seen this happening (as monitored by better battery stats and similar apps) on many phones runing different versions of Android

It seems like each recent Android release has worked to improve upon that capability. Features like Doze prevent apps from continually "checking in" while the device is sleeping.

Does Doze let you whitelist apps like Sony's Stamina does? Eg I whitelist my email client and Whatsapp, so that they are (should be) the only apps able to connect to the internet when the phone is not in use.

[...]

Other manufacturers (Samsung, Huawei, etc) also like to build in their own task killers "battery management features" which fight with Android's included task/memory management in the same way a third-party task killer would. Sure, you may get a little bit of extra battery life, but you run into problems with applications which don't update (like weather apps) or don't notify you (email). Approaches like that ruin the Android experience.

But isn't the fact that phone manufacturers have to fiddle, each in a different way, with this proof that this aspect of Android is fundamentally flawed?

I have seen Stamina mode improve battery life significantly on my Sony Z3. Why would we need a phone manufacturer to implement a specific functionality that prevents unwanted apps from connecting to the internet in the background, in order to save battery? Why is this not a standard feature? If Android were so smart at detecting which apps don't need to be in the background, then Stamina wouldn't make a difference, yet it does.
 
Last edited:
Upvote 0
You might be surprised at all the things that are running in the background of any Windows installation. [...]
Android does run a lot of things in the background but at least it's more transparent about it.
There's a lot of stuff running in the background on a Windows PC, and most software vendors are not fully transparent about it. Why did Apple install a service that automatically checked for updates when I installed Itunes? Etc. However, in Windows you can easily prevent unwanted apps from running automatically in the background (I use CCleaner for that). In Android, you can't.

Practical example: if I install 10 games and 10 browsers on Windows, I can be sure that they won't start running and connecting to the internet for no reason. If they install some background service I don't want, I can disable it, like in my previous Apple example.

If I install 10 games and 10 browers on Android, I cannot be sure they will not start running and connecting to data services when I don't want them to. In fact, I can be quite sure they will. Or am I wrong?
 
Upvote 0
Not a flaw, that's how it (and Linux) works.

More than you care to know covered in much detail here:


:)

edit: LOL, that's what I get for starting a post and not hitting send--ninja'd!

Well, I am not a programmer and I appreciate there are many technical complexities I do not fully grasp.
However, looking at this as a smartphone user, not developer, all I care about is that this way Android/Linux works causes unwanted apps to wake the phone from idle, which causes a battery drain. Or am I missing something?
 
Upvote 0
There's a lot of stuff running in the background on a Windows PC, and most software vendors are not fully transparent about it. Why did Apple install a service that automatically checked for updates when I installed Itunes? Etc. However, in Windows you can easily prevent unwanted apps from running automatically in the background (I use CCleaner for that). In Android, you can't.

Practical example: if I install 10 games and 10 browsers on Windows, I can be sure that they won't start running and connecting to the internet for no reason. If they install some background service I don't want, I can disable it, like in my previous Apple example.

If I install 10 games and 10 browers on Android, I cannot be sure they will not start running and connecting to data services when I don't want them to. In fact, I can be quite sure they will. Or am I wrong?

If you install ten programs on your Windows box and just do nothing, than of course they're just inert, doing nothing. Launch all ten of them and use them however, and then quit all ten, there will still be a lot of those ten programs left in active memory. It's similar with Android, you can install ten apps and until they are actually running they do nothing and don't load into memory. Again, with Android it's just more transparent. (Not completely but still more user-visible than Windows.) Boot up your Windows box from a cold start. Wait a minute or two for all the background processes you don't see to load and then go into Task Manager and take note of the used memory number. Now launch these ten programs you've downloaded, use them, and quit each of them. (Be sure not to do anything else for this impromptu test.) Go back into Task Manager and now take note of the used memory number again.
 
  • Like
Reactions: scary alien
Upvote 0
But is this the best approach for a smartphone, for which limiting power and data consumption is more important than for desktop or server PCs running Linux?
Launching an app requires the operating system to read data off the storage memory, load it into running RAM, and then through interactions between the OS , drivers, and your phone's hardware something will pop up on the display. If an app is partially loaded into memory it uses less of your phone's system resources than to repeat the process each time you want to use that app.
 
Upvote 0
If you install ten programs on your Windows box and just do nothing, than of course they're just inert, doing nothing. Launch all ten of them and use them however, and then quit all ten, there will still be a lot of those ten programs left in active memory. It's similar with Android, you can install ten apps and until they are actually running they do nothing and don't load into memory.

I don't agree. I have had plenty of cases of apps I didn't want to run waking up the phone from idle. Do you agree that wakelocks cause battery drain, and that, if these apps hadn't woken up the phone, the phone would have stayed in idle and therefore saved battery? Or am I missing something?

I understand why task killers are snake oil. That's not the point I am making. The point I am making is on the battery drain.

Also, I repeat, if the OS is so smart, why does Sony's Stamina improve battery life? Which is it: is Sony's Stamina snake oil, and are therefore all manufacturers banding backwards to come up with battery life improving tweaks, or are tehse tweaks necessary because of what I see as a fundamental flaw in Android? well, forget manufacturers: why did Google introduce Doze in Marshmallows if the OS was already so smart at detecting which apps should and should not run?
 
Upvote 0
Launching an app requires the operating system to read data off the storage memory, load it into running RAM, and then through interactions between the OS , drivers, and your phone's hardware something will pop up on the display. If an app is partially loaded into memory it uses less of your phone's system resources than to repeat the process each time you want to use that app.

But what is the impact of all of this on battery life? Is it zero or non-zero? If I have apps I only use rarely, isn't it better if I choose when they should run?
 
Upvote 0
I don't agree. I have had plenty of cases of apps I didn't want to run waking up the phone from idle.
You need to distinguish apps have different functions and different purposes. An app that only does a singular task will only require it to be running in memory when needed. If it remains partially loaded into memory is a complete nonissue, but the fact is until you actually launch the app it's inert -- it is taking up storage memory space but not RAM. An app like an email client however will need to be running in memory when you are actually using it but in the background to periodically poll your email service's online servers. (and note a lot of email client apps do have settings so they won't check for new messages but that's another issue.) An app that's by design is required to run in the background is different than one that isn't, you can't lump all of them together just out of convenience to make some point.
 
  • Like
Reactions: scary alien
Upvote 0
Basically you allow those app to run in background while downloading them. The best method to stop them from running in background is to force stop them. You can do it from settings. First go to running application section and find out those apps which you want to stop then click on them and apply force stop this will kill all the running process of that apps and will stop them.

The other way is to turn off wifi when you are not using phone because most of them background apps require an internet connection so turning off wifi will automatically stop their activity. But this option is only useful when you are not using your phone.
 
Upvote 0
But why do games or other apps I use rarely, and which are not meant to provide constant notifications like an email client or a weather app, wake up the phone, connect to the internet, and consume the battery? I have seen this happening (as monitored by better battery stats and similar apps) on many phones runing different versions of Android

That's entirely up to the app. Games generally don't have a reason to run in the background (unless they're going to harass you with periodic notifications). It's not up to Android to decide whether an app has a legitimate need to run as a background service or not, it's up to the developers to code their apps correctly. Apps misbehave on Windows all the fricking time too. ;)

Does Doze let you whitelist apps like Sony's Stamina does? Eg I whitelist my email client and Whatsapp, so that they are (should be) the only apps able to connect to the internet when the phone is not in use.

Doze isn't just about Internet access, but that is a component of it. And yes, Doze includes a whitelist feature. (On my Nexus, Settings > Battery > (menu) > Battery optimization) Apps which are "not optimized" are not subject to Doze's restrictions and can generally do what they want. While I expect timely notifications of emails and other messages, the only non-system apps that I have excluded from Doze are Android Wear and Tasker - the former to allow notifications to find their way to my watch even while my phone's been idle for a while, and the latter to allow it to perform certain automated actions based on time/location/network state/etc.


But isn't the fact that phone manufacturers have to fiddle, each in a different way, with this proof that this aspect of Android is fundamentally flawed?

They don't have to - and many would argue that they shouldn't. Manufacturer-included tools perpetuate the myth that Android can't manage things on its own. The truth is that the task killers included by many manufacturers fight against how task management is designed to work on the OS. This results in applications that aren't able to correctly save their state before being terminated and must then be redrawn from scratch when they start again rather than picking up where they left off. Missed/delayed notifications are also a symptom of this mismanagement.

I have seen Stamina mode improve battery life significantly on my Sony Z3. Why would we need a phone manufacturer to implement a specific functionality that prevents unwanted apps from connecting to the internet in the background, in order to save battery? Why is this not a standard feature? If Android were so smart at detecting which apps don't need to be in the background, then Stamina wouldn't make a difference, yet it does.

I've not personally used Stamina, but have done a bit of reading on it since you keep bringing it up. From what I've seen, it really is pretty much a more aggressive implementation of Doze. The only big difference I found is that Stamina kicks in one minute after the device goes to sleep, while Doze has a longer delay (and stricter requirements) for when it can activate. (FWIW, Doze has been further improved for Android 7.0 and is now much less particular for when it kicks in. Standby time for my Nexus running the preview has been very good.)

In fact, Stamina was largely removed for Android 6.0-based releases because it conflicted with Doze (and Google doesn't let OEMs tamper with Doze).

The name "Stamina" did recently make a return to Android 6.0 builds from Sony, but it seems to be pretty much a rebranded version of the Battery Saver mode added to stock Android 5.0; this just adjusts certain settings (vibration, brightness, display timeout, animations, etc) below a specified battery level to try to stretch the power that's left. Again, it doesn't do anything that's not already a part of Android.

I don't agree. I have had plenty of cases of apps I didn't want to run waking up the phone from idle. Do you agree that wakelocks cause battery drain, and that, if these apps hadn't woken up the phone, the phone would have stayed in idle and therefore saved battery? Or am I missing something?

Like I mentioned, the problem is the apps, not the OS they run on. The OS shouldn't just go around clubbing every little baby seal head that pops up. It doesn't really have a way to know which ones are fair game to smack around.

But what is the impact of all of this on battery life? Is it zero or non-zero? If I have apps I only use rarely, isn't it better if I choose when they should run?

It's less of an impact than it would be to not cache the apps and start them from scratch each time they were needed. And, again, this is the way that Android was designed to function.
 
Upvote 0
That's entirely up to the app. Games generally don't have a reason to run in the background (unless they're going to harass you with periodic notifications). It's not up to Android to decide whether an app has a legitimate need to run as a background service or not, it's up to the developers to code their apps correctly. Apps misbehave on Windows all the fricking time too. ;)
How about apps which wake the phone from idle?
Are you saying this has no impact on the battery?
Or that it's because the app was coded poorly, so it's the app's fault, not the OS'?

I have just checked Better Battery Stats on my rooted Sony Z3 dual. Since turning on the phone this morning, partial wakelocks have been caused by, among others, Youtube and Sygic a sat nav app. I have not run either in a few days. AFAIK, they had no reason to run in the background, let alone wake the phone.

Don't get me wrong: I a not trying to start a n argument. I am genuinely curious about a topic which i appreciate is complex and which I know I do not understand in its entirety because I ma not a developer nor a Linux expert.


They don't have to - and many would argue that they shouldn't. Manufacturer-included tools perpetuate the myth that Android can't manage things on its own.
I am puzzled. I think we both agree that Stamina is a more aggressive version of Doze. But why did Google introduce Doze at all? is Google messing with its own OS?

I've not personally used Stamina, but have done a bit of reading on it since you keep bringing it up. From what I've seen, it really is pretty much a more aggressive implementation of Doze.
The only big difference I found is that Stamina kicks in one minute after the device goes to sleep, while Doze has a longer delay (and stricter requirements) for when it can activate. (FWIW, Doze has been further improved for Android 7.0 and is now much less particular for when it kicks in. Standby time for my Nexus running the preview has been very good.)

Well, from what I understand, there's also the big difference that Doze works when the phone is stationary, whereas Stamina works when the phone is not in use. So if I keep my phone in my pocket or on a desk while moving (eg the desk of a train), Stamina kicks in, Doze doesn't.

Like I mentioned, the problem is the apps, not the OS they run on. The OS shouldn't just go around clubbing every little baby seal head that pops up. It doesn't really have a way to know which ones are fair game to smack around.
But I, as the user, would very much welcome this option! After all, it should be up to me to say that I don't want apps running in the background, waking my phone and draining my battery!

It's less of an impact than it would be to not cache the apps and start them from scratch each time they were needed. And, again, this is the way that Android was designed to function.

There are also two points I haven't mentioned:
  1. an app connecting to data services when the user doesn't want it to is no big deal if you have a 2Gb data plan and you are in your home country, but can become an issue if you are roaming abroad. In certain cases even very small amounts of data can be very expensive
  2. Android doesn't do a very good job of detecting which apps need closing. There are many cases when the OS closes power-draining apps thinking they are not needed, whereas in fact they are. I have had bad experiences with apps like sat navs and apps to connect to work email (Good, Touchdown, etc). I don't know to what extent it is Android's fault and to what extent it's because the apps are poorly coded, but, with the latter category, users typically don't have a choice: it's their IT departments which choose for them
 
Upvote 0
Don't get me wrong: I a not trying to start a n argument. I am genuinely curious about a topic which i appreciate is complex and which I know I do not understand in its entirety because I ma not a developer nor a Linux expert.
Uhm, actually reading through this thread again you have been presented with a number of solid answers from different aspects, it's just that none of them appear to be compatible with your preconceived concepts on how computers or smartphones actually function.
 
Upvote 0
Uhm, actually reading through this thread again you have been presented with a number of solid answers from different aspects, it's just that none of them appear to be compatible with your preconceived concepts on how computers or smartphones actually function.
I have been presented with explanations as to why I shouldn't use task killers (which I never used anyway), not on explanations as to why I should be happy with an OS which lets apps I don't want running in the background to wake up my phone from idle and therefore consume battery. I made the example of Sygic, a sat nav app, waking up my phone, as identified by better battery stats. Or am I missing something?
 
Upvote 0
How about apps which wake the phone from idle?
Are you saying this has no impact on the battery?
Or that it's because the app was coded poorly, so it's the app's fault, not the OS'?

They can have a very real impact on battery, yes, but there's only so much Android itself can do to "fix" a poorly-coded application. Measures like Doze are intended to help in that area by minimizing/aligning those wakelocks to decrease the battery impact.

I have just checked Better Battery Stats on my rooted Sony Z3 dual. Since turning on the phone this morning, partial wakelocks have been caused by, among others, Youtube and Sygic a sat nav app. I have not run either in a few days. AFAIK, they had no reason to run in the background, let alone wake the phone.

The Android works in mysterious ways. :p

Again, though, it's down to those apps telling the OS "wake me up when X happens". The OS doesn't know (nor care) why the apps says it wants a wake-up call.

Don't get me wrong: I a not trying to start a n argument. I am genuinely curious about a topic which i appreciate is complex and which I know I do not understand in its entirety because I ma not a developer nor a Linux expert.

Fair enough. I'm not a developer or expert either, but I've been around both to have picked up a few things. :)


I am puzzled. I think we both agree that Stamina is a more aggressive version of Doze. But why did Google introduce Doze at all? is Google messing with its own OS?

Doze is a feature built into Android now. It's not an add-on or third-party app trying clean up things after the fact. It's a core part of how Android 6+ works.

And yes, Google is constantly messing with its OS - that's why we get a major Android release every year. ;)

And they messed with Doze, in particular, quite a bit for Android 7. It keeps getting better, and everyone gets to benefit - rather than it just being tied to a single manufacturer.

Well, from what I understand, there's also the big difference that Doze works when the phone is stationary, whereas Stamina works when the phone is not in use. So if I keep my phone in my pocket or on a desk while moving (eg the desk of a train), Stamina kicks in, Doze doesn't.

Yeah, I (perhaps only mentally) included that under my "stricter requirements" statement. :thumbsupdroid:

But I, as the user, would very much welcome this option! After all, it should be up to me to say that I don't want apps running in the background, waking my phone and draining my battery!

That's a great opportunity for an add-on like Greenify (or a manufacturer-provided app which does the same thing) to allow you greater control.

The big problem I see is that a lot of manufacturers' "battery management" features operate on a white list; they assume out of the box that every user-install application is evil and should not be allowed to run in the background / wake up to poll for data updates / access the Internet / generate notifications unless the user individually approves each application. The user installed the app for a reason, and the user expects the app to work; don't get in the way!

I'd much rather see manufacturers follow Greenify's example and use a blacklist - automatically allow all apps to do what they want unless the user says otherwise. *Hopefully,* there are far fewer misbehaving apps which need to be prevented from doing things versus all the apps that don't abuse your phone's resources.


There are also two points I haven't mentioned:
an app connecting to data services when the user doesn't want it to is no big deal if you have a 2Gb data plan and you are in your home country, but can become an issue if you are roaming abroad. In certain cases even very small amounts of data can be very expensive

As I mentioned earlier, Android does include an ability to restrict apps from using data in the background. There's also a higher-level "data roaming" toggle to disable data access entirely when roaming off your home network.

Android doesn't do a very good job of detecting which apps need closing. There are many cases when the OS closes power-draining apps thinking they are not needed, whereas in fact they are. I have had bad experiences with apps like sat navs and apps to connect to work email (Good, Touchdown, etc). I don't know to what extent it is Android's fault and to what extent it's because the apps are poorly coded, but, with the latter category, users typically don't have a choice: it's their IT departments which choose for them

I've encountered what you describe a lot on a few Huawei devices I've used. And in each instance, the problems turned out to be 100% caused by Huawei's baked-in process management. I don't really have those problems on Nexus devices with stock Android management. That's not to say that Android's management is perfect, but in my experience is does work far better when it's not being messed with by external forces.
 
Upvote 0
I have been presented with explanations as to why I shouldn't use task killers (which I never used anyway), not on explanations as to why I should be happy with an OS which lets apps I don't want running in the background to wake up my phone from idle and therefore consume battery. I made the example of Sygic, a sat nav app, waking up my phone, as identified by better battery stats. Or am I missing something?
I mentioned the threads about task killing because they contain a ton of valuable info from people far smarter than I on how Android manages background processes.
 
Upvote 0
Please don't take this the wrong way, but you've latched onto battery saving as if it were the holy grail of smart phone performance. It's not. Sure a more efficient device and longer use between charges is always a good thing, but there are mobile information platforms that we ask to do so many things without out constantly monitoring them.

Android (as well as iOS and Windows Phone) is designed for the average user, not the power user, micromanager or technogeek. Most people don't even look at the running processes or wakelock states. And in order to keep it reasonably lean and efficient, certain generalizations must be made. As Android improves, Google is adding many things that will improve battery life as developers and users find more ways to consume it ... (***cough*** Pokémon GO ***cough**** ;) ).

If your goal is to strip down your device to the point where you can achieve a specific period of time on a single charge, then you can certainly disable enough to do so, but you'll be left with a device that loses a great deal of functionality, just like you can strip a stock automobile down to achieve a much higher mpg, but dang, that A/C feels good when it's 96° out. :)


Now, if you find that your use requires inconvenient charge cycles like in the middle of the work day, or you can't travel with your phone because it dies in mid-trip, then you need to decide between function and economy or power. Or if apps are consuming unreasonable amounts of juice for unwanted functions, then that is up to the developer, unless you want Android to become app police and shut down, deny or otherwise interfere with an apps ability to run.

I guess what I'm saying is "there is no free lunch."
 
Upvote 0
Please don't take this the wrong way, but you've latched onto battery saving as if it were the holy grail of smart phone performance.

Apologies, I guess I wasn't clear. Let me try to explain again.
I think I understand why it makes sense to have apps running in the background in a Linux/Android environment, which in this respect operates differently from Windows.

However, I find it frustrating that apps I use rarely, like Sygic sat nav, wake up my phone from idle, as it has no business running in the background.

I can understand it if this is a small inefficiency/price to pay because this system makes sense for a number of other reasons. But it is an inefficiency. Is this what you are saying? Are we on the same page on this point? Do we all agree that, if unwanted apps weren't run in the background, there would be no point for Sony's Stamina and Marshmallow's Doze? Again: no interest in an argument for its own sake, just curiosity.

I fail to appreciate, however, why I should welcome this because "Android knows best"; in this case no, it doesn't.

One last question: is it technically possible to write an Android app that never runs in the background when unsolicited? Eg does Sygic wake up my phone because it was poorly coded, or is there simply no way to ensure an app runs only when the user wants it to?

Thanks!
 
Upvote 0
However, I find it frustrating that apps I use rarely, like Sygic sat nav, wake up my phone from idle, as it has no business running in the background.

Check the app's settings to see if there's something configured for periodic geolocation updates. Failing that, uninstall it and find an alternative that doesn't behave that way.

Do we all agree that, if unwanted apps weren't run in the background, there would be no point for Sony's Stamina and Marshmallow's Doze?

No. The solution to "unwanted apps" running is to find out why they're doing so and either configuring them not to or ditching them for something that behaves better. Neither Sony's Stamina or Android's Doze modes will prevent an app running if it thinks it has to.

is it technically possible to write an Android app that never runs in the background when unsolicited?

Perfectly possible, and many do so.
 
Upvote 0
Google's word on Doze (saying it much better and more accurately than I ever could):


Just a few random takeaways from some of what I've read in the above:

- there can only be one current foreground process; that means that everything else is running in the background :p

- apps that haven't been used for a while or aren't using or demanding resources get "pushed back" (Android will autokill them himself and reclaim its memory)

- apps have to be written correctly to properly make use of system resources (i.e. see link above)

- Android has evolved over time and I'm pretty darn sure that that apps / code I wrote in 2010 could certainly benefit from a deep review and overhaul for the 2016 state of Android :p

:)
 
Upvote 0
There's a lot of stuff running in the background on a Windows PC, and most software vendors are not fully transparent about it. Why did Apple install a service that automatically checked for updates when I installed Itunes? Etc. However, in Windows you can easily prevent unwanted apps from running automatically in the background (I use CCleaner for that). In Android, you can't.

Probably to stop people howling and bothering the Geniuses when their old iTunes didn't recognize their shiny new iPhones and iPads.
 
Upvote 0
All I'm seeing here is the OP trying to blame Android for a poorly coded app, instead of blaming the developer.

Android doesn't know best always. It knows what best to do with a properly coded app. A properly coded app wakes the phone up only with a proper reason. A poorly coded one wakes the phone up whenever it wants to. Android cannot determine if the reasons are valid or not. Doze is simply there to create a situation where nothing wakes up because the phone is idle. You can whitelist which apps are not affected by this. Doze was not made because Android is inefficient. It was made because Google understood that there are times we don't need everything running. If you go to bed, do you still need Twitter or your weather app polling every hour for the 7hrs you are asleep? No. That's where Doze comes in. Stamina mode just takes it further.

Also, not all apps you see are activated on its own. Sometimes, other services call it up. For example, a weather app may call up. Google Maps for certain functions, so it will appear to run, despite you not activating it.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones