Please dont 'quote' this as it VERY lengthy, just copy and paste the this first sentence.
I wanted to write up a definitive posting on task killers as I think they are way to often misused and misunderstood and I am getting quite tired of reposting this same information.
I use a task killer called TaskPanel XTRA (its free). BUT, I ONLY use it for killing tasks that are misbehaving (an app that has slowed down or nearly hung your phone or an app that is CLEARLY causing battery drain or sending copious data via your cellular connection). If an app continues to misbehave, switch to a different app that offers the same functionality, do NOT continue to use a task manager / task killer to kill an app continuously.
Task killers should NEVER be configured to automatically kill an app (as I will explain later in the post) and should NEVER be used to manually kill apps UNLESS it is a small emergency (as in major battery drain, copious cellular data, massive processor usage/memory usage preventing the user from using the phone normally).
Android is a VERY powerful operating system which gives YOU THE USER the control to manage your phone (hence the major reason I dont like the IPhone or Windows Phone), but with that control comes responsibility. As I will explain shortly, Android has many built-in features in place to help you manage your phone's precious memory. While there has been much nonsense one way or the other as to whether task killers should be used for anything other than a misbehaving app, I tend to listen to the creators of a product before I listen to some jackass who bases a decision on pure speculation or a 'feeling' he has. I can tell you that I have not used Task Panel in the last 4 months (with the exception of I believe Pandora which I used about a month ago and could not find a way to actually exit the app - guess what...this app is no longer on my phone - both because of privacy concerns that recently came up about Pandora AND I dont keep apps around that I cant manually exit the app cleanly).
For a VERY good write up (with a brief 'readers digest' summary at the bottom with plain English bullet points, since most of the article is taken directly from the Android developer FAQ and is very techy for non-programmers), have a gander thru this.
http://geekfor.me/faq/you-shouldnt-b...-with-android/
And for the FAQ they quote most of the above article from (but I do recommend you read the above FIRST as it will give you some context - much of the reasons are 'cherry picked' from different areas of the FAQ to help you understand why this is important and give you the information that is relevant to the discussion as to why task killers are not a good thing). All of the relevant information is in the page that will load up (in the rightmost panel / frame) so you dont need to click any links to read the relevant article. I am only providing this link as a reference to the original source material so you dont think I am just making this up - this is straight from the horses mouth so to speak (again, for most people, dont read this FAQ, read the one above first to get context and then if you feel you want to know more, read this link below).
http://developer.android.com/guide/t...damentals.html
Alright, enough about task killers, now to deal with how to manage those pesky apps that seem to always be running (even if you never started them) and how to keep them from starting up using a method that will NOT affect Android and how it manages your memory but will keep your phone in peek performance.
For managing the conditions when an app starts up, use an app called Autostarts, do NOT use a task killer to 'auto kill' tasks. Autostarts literally allows you to control the conditions of when an app starts.
Android has built in functionality for managing the memory footprint of various apps and will manage your phones memory quite nicely. Much of the functionality of the built in memory management came in Android 2.2 (also sometimes referred to as Froyo) and is really quite good 'if' you allow the phone to manage processes rather than just quickly killing everything.
There is a reason you can no longer just 'kill' system level processes, Google wants you to allow Android to 'learn' how to manage itself.
Android has a very powerful feature, the ability for app writers to start their app when certain conditions occur. The problem with this powerful feature is, often times, apps are bloated or poorly written, many times being started for any little thing your phone does (wifi on or off, Bluetooth on or off, location changes, screen on or off, USB connected, cellular connection, headphones connected, a cow fart, a bird poops, etc.). Even Google itself has been guilty of this, Google Maps (until recently) would be started in nearly 20 different conditions as a background process for very trivial things and was a major source of battery drain (it still is to some extent). This is where Autostarts comes in. Use Autostarts to control the conditions of when/if an app will start up automatically based on a certain condition.
Most ancillary apps (apps that are not integral to the core functioning of the phone - although it is probably more appropriate to refer to these as 'user apps', it isnt quite accurate because many 'system apps' (which in the technical description are apps that are installed with the rom) are not core apps either. For example, many roms come with Youtube pre-installed (meaning you do not manually have to go to the market and install them) which is not integral to the core functioning of the phone), these apps do NOT need to ever start under ANY condition for that app to function normally. The only considerations for an app starting itself would be the widget updating, the app has a scheduled event (for example, an alarm, a podcast client downloading podcasts at a certain time of day, Titanium backup performing a scheduled backup, etc.), or an app that has to be running in the background to perform a task when certain conditions arrive (for example, an app called Sanity needs to be available to run and monitor for incoming/outgoing phone calls so that it can start itself and perform its function during a phone call).
Using Autostarts, I have disabled nearly 80% of EVERY condition that all NON-system apps start under (I havent counted but for 70 apps, this is probably 55 apps or so that I disabled EVERYTHING these apps would start under). This includes Google Maps (yep, even Google is guilty of having an app needlessly running when it doesnt need to).
By taking control of your apps (in essence, disabling as many apps from 'auto starting' until YOU the user launch the app manually) and properly quitting an app when you can (within the app, find a way to click a 'quit' or 'exit' button to allow the app to remove itself from memory) rather than just allowing apps you launch to run in the background, you can save yourself massive amounts of battery life, limit cellular data usage, AND allow Android to properly manage itself.
Think of it like this, if I were trying to learn something but you (the user) kept doing it for me, Id never learn. And if you read the above linked article, you will begin to understand why there is more to this than just allowing Android to learn.
To give you an idea, using Autostarts to disable any non-system app that does not need to be running, if I am using the stock battery, I can run my phone for 2 days pretty easily if I simply turn off cellular data, Wifi and Bluetooth when I dont need it, maybe even stretch it to 3 days.
My ram usage is almost always around 50% (150 MB free) on a fresh reboot (around 2 minutes to allow the phone to stabilize) and it remains this way during the day because I exit apps when I am done using them, even tho I have around 80 apps installed, and I dont allow apps to just start themselves because they sensed a fart in my general direction.
For those of you that use a Windows PC, you can think of Autostarts as a proper 'msconfig'. Keeping your PC clean of apps when windows starts keeps your PC running much more smoothly. Autostarts takes this to the next level and keeps apps from ever starting in the first place rather than a task killer 'auto killing' a task, the app restarting, the app getting 'auto killed' again by the task killer, the app again restarting, etc. (a vicious cycle that both kills your battery because the phone has to crank up the cycles on the processor to both start and stop the app, the power used to write and clear the data written to both ram and 'perma' storage (if an app needs to store any data), and cellular data (if an app 'phones home' so to speak when it initially launches (which is both a cause for additional battery usage to send data and also adds to the amount of data your phone transmits over the cellular network, which is a problem given most cell plans have a monthly data cap).
Autostarts is fairly easy to use but does require root.
The app is $2 and here is a brief synopsis of how to use it:
When you initially launch the app, read any dialog messages that appear and click ok thru them. Then, wait for the app to finish loading (there is a progress bar at the top that will fill with yellow - on my phone it takes about 45 seconds to a minute to finish loading in).
Once it is loaded, you need to configure a few things BUT, you might want to just scroll thru the list of things currently on the screen. These are the 150+ conditions that apps currently installed on your phone are starting up under (dont click anything just yet, just browse the list if you are curious).
Right now, the app is configured to show a list categorized by conditions. This unfortunately is not very helpful. We need to change it to sort this list by apps rather than by conditions (so that we can literally disable EVERYTHING an app will automatically start under rather than scrolling thru every condition).
So, hit your menu button and the top left most icon in the menu that appears is an icon 'Group by application'. Hit that icon and magically, you are now seeing every app. You can now click an app and see all the conditions every app starts under. Neat.
But there is one more setting to change first in order to help keep you from doing something you should not.
(Optional but HIGHLY recommended!) Hit your menu button again (if you exited out of the menu already) and hit the upper right most icon, the 'View' button. Tick the topmost checkbox, 'Hide system apps' and hit the 'Ok' button. This will keep you from disabling anything that 'may' be critical to your phone operating.
Now, exit the menu (the 'back' button on the phone itself).
If you decided not to hide system apps, these will appear in YELLOW. It is probably not a good idea to mess with these unless you know what you are doing. Messing with these can cause a soft brick or make your phone unusable in certain conditions (for example, if you prevent the phone.apk app from ever starting, you will never be able to take phone calls).
Now, start scrolling thru the list (start at the top). If it is an app that does NOT need to run in the background, expand the app by selecting it and starting with the topmost condition that app starts under, tap each condition and in the menu that appears, select 'Disable'. Do this for ALL conditions for each app you want to manage. When you are done disabling the conditions, go to the next app and decide again whether that app needs to run in the background or not.
As a brief summary, to consider whether an app should be allowed to run in the background, ask yourself the following:
Does the app:
a. ...have a widget that you are actually using on your home screen that needs to update? For example, a media player or weather widget should NOT be disabled...
b. ...have a scheduled event such as checking the weather, downloading new podcasts, checking email, etc?
c. ...need to perform a certain task or provide some extra function(s) when a specific event happens (such as recording a phone call when it comes in, an eq when audio is playing, etc.)?
My recommendation is, if you answered YES to any of the above questions, leave all the conditions that app starts under alone (unless you know what you are doing, its best not to mess with it as I will explain in a moment).
If you answered NO to all the above, DISABLE ALL of the conditions that app starts under (again, DONT mess with system (yellow) apps and certainly dont disable every condition for these).
I recommend an all or nothing approach for each app is because if an app doesnt behave properly, it can become a major pain to continue to open Autostarts and try to track down a specific condition you disabled that is stopping / preventing that app from functioning the way you want it to.
Every time you update or install an app, if you remember, try to open autostarts and review the conditions the app starts under. Updated apps often times will add something new and if you have this app completely disabled, it may find a way to start itself again.
And, dont worry, you cant permanently screw anything up (unless you are messing with system apps - get the reason why I recommend not playing with system apps?). If an app stops functioning correctly, just re-enable the conditions that app starts under. Pretty easy.
Hopefully, this is complete enough, I will now just link to this post everytime I need to mention autostarts. I am getting quite tired of posting this same information .
Good information for people. Well done.
Sent from me to you using stuff
Want apps to require "permission" to run in background/wakeup/notify (off by default)
Hello, I don't understand why this hasn't simply been included in Android from the beginning, but rather than changing the "Developer Options" setting "Don't keep activities" to on, why can't I require apps that I install to need permission before they can stay on in the background when I exit them?
I understand that leaving them in the background means they can load up quicker next time, but I want the default behavior of apps to be that they can't run in the background, don't "phone home" and don't generate notifications unless I specifically change that behavior to be on.
It is so extremely frustrating that Android doesn't come this way out of the box, and I know I could use Greenify, but I've heard so many people say they don't like Greenify, or it causes problems?
Why can't we just make it so Apps have to ask first, before they're allowed to run at startup, or run like a service in the background, rather than make users simply accept that they will do so as a condition of installing them, because that's how the developer wants it?
Any app like Facebook, or a game, should have to popup a dialog and be given permission from the user, before it can sit in the background checking for updates, or popping up notifications. The setting should also need an additional permission granted to do so while the screen is off.
We shouldn't have to root our phones and install Xposed to download modules from un "trusted" sources just to stop third party apps from draining our battery when our phones are in our pockets. It should be a simple thing, easy for the average user, to know that when the screen is off and the phone is put away that it's using minimal battery and the ONLY things that will wakeup the phone are calls/messages/things that the user deems as important enough to do so.
"Inactive Apps"
Wow - it looks like my prayers were partially answered already and I just didn't know yet.
The Developer Options "Inactive Apps" looks like it partially addresses my concerns about how difficult it is for users to have control over what runs in the background on their own devices.
Now all that's missing is finer control - I'd like to use Google Now and let Google ping my location occasionally, just not while the screen is off and the phone is running on battery. I'm not quite up to the task of using Tasker to make it so.
I wonder, should I still try using Servicely and/or Amplify in Android 6.0.1? it seems like Inactive Apps has pretty much obsoleted Greenify?
Hi,
I have noticed that my phone will be non-responsive when network state change (like connecting to a new WiFi) or when it just wakes up. It appears to be caused by too many apps starting. ES file manager showed the list of applications. At least half of them do not need to be waken up.
Is there any way to manage this? My guess is that there is some system event these apps subscribe to. If I can prevent them from receiving such event, then it will reduce the rush. It appears 3C toolbox can do that but it would require root. Any other options?
Thanks
Hi all,
I have a Pixel 4a with stock Android 11 (up to date, no root, with Nova Launcher).
I have a rowing machine that comes with an app (ErgData, by concept2) that can connect to the machine via bluetooth or via usb cable: while rowing the app logs the workout data (like pace, heart rate etc).
I wanted to do the following: watch a video while the ErgData app logs my workout, so I started ErgData, connected it to the rower, configured the workout and, once ready to start rowing, I switch to the video player and start rowing.
It worked fine a bunch of times, but one day it stopped working: at the end of the workout (like after 20-30min), when I switch back to ErgData the app is in its default screen (like the one you get at startup) and it has logged nothing. When connecting via bluetooth, the app has also lost the connection to the rower. When connecting via usb the connection is there but the app has still logged nothing.
Things I've done:
disable battery optimization for ErgData, Bluetooth and Bluetooth MIDI
disable adaptive battery
use a different media player (android built-in, VLC)
uninstall / reinstall ErgData
clear Bluetooth storage/cache
disabled "Suspend Execution for Cached App" (developer mode)
No joy.
I tried a different app (ErgZone) and it has the same behavior.
I tried staying with ErgZone foreground for 3min before switching to the video player and in that case, ErgZone logged something, but not the totality of the workout.
So it really seems that somehow, when I switch to the video player, ErgData / ErgZone gets "paused" (killed ? cached ?).
Anything I can try ? Anything the app developers should do to prevent this ?
Thanks !
Sorry for the late response, I normally dont browse this forum. I am rooted and always have been, so all the solution I have used in the past are dependent on root. However, one idea to try is checking if the background app is killed while the phone is plugged into a charger? I know that being plugged in keeps the phone awake even when the screen is off.
HornetMaX said:
So it really seems that somehow, when I switch to the video player, ErgData / ErgZone gets "paused" (killed ? cached ?).
Anything I can try ? Anything the app developers should do to prevent this ?
Click to expand...
Click to collapse
Does the ErgData/Zone app start a persistent notification when recording? That's the way to keep a service running in the background. I had a phone with a tendency to kill anything not in the foreground, but it never killed active apps (including background with persistent notification).
If the app dies despite this, there may be a hint in the logcat. You have to enable developer mode to fetch that.
a1291762 said:
Does the ErgData/Zone app start a persistent notification when recording? That's the way to keep a service running in the background. I had a phone with a tendency to kill anything not in the foreground, but it never killed active apps (including background with persistent notification).
If the app dies despite this, there may be a hint in the logcat. You have to enable developer mode to fetch that.
Click to expand...
Click to collapse
No, ErgData/ErgZone do not have a persistent notification. Guess that's a potential solution then.
At the moment my workaround is to use the "pop-up" feature of VLC so that I have the video on top of the other app (ErgData/ErgZone), so that the other app stays foreground. That works, but it's not a real solution.
Hmm they gave me a beta version of the app with the persistent notification thingy and it works perfectly.
Is there any way to manage sleeping apps so that when app is still on recent apps list, it will be a "never sleeping" app so it never goes to sleep. Is this possible with tasker or some other way?
What I'm trying to achieve here is:
I have some app listed as deep sleeping app, since I might not need it for a week and have no reason for it to ever run in background to waste any battery or spam notifications.
Then I might use the app to look for something --> switch to like browser to check something from there and when I switch back to previous application it's been killed and loads itself open from start which is slower and might lose some unsaved progress in the app.
I would really like to have it so app that isn't removed from recent apps list doesn't get killed and put back to sleep. Then when I do remove it from recents, it could be handled the default way to make it go sleep.
Can tasker handle these kind of situations like checking the recent apps --> if app X is on the list set it to never sleeping apps --> if app is removed from the recent apps set it to deep sleeping apps. Or some other similar way to control the sleeping/never sleeping apps.
Thanks