Yep. No need to kill all the background apps for the iPhone...
Why not? Killing apps from the background free some memories and so smoothly run some other apps. Well for a power user like me, I need to kill apps as soon as I'm mot using them, in fact it become like a culture for me actually, I'm completely used to kill my apps when I know I don't need it by using multi cleaner trigger activations.
Lets go over the reality of the situation. To make the playing field level for everyone I am going to start with a brand new iPhone 4 with iOS 4.3.X installed and the phone was just activated.
Since this is a new phone you decide to test every app and launch Mail, Messages, Phone, Safari, Calendar, Clock, App Store, Notes, Settings, Calculator, Weather, Stocks, iTunes Store, Music, Contacts, Camera, Maps, Voice Control, Compass, Photos and Game Center.
Now lets discuss HOW iOS works to do all of that. The very first lesson that needs to be learned is that iOS is a Unix based Operating System. I am going to boil a lot of stuff down to one sentence about Unix. Unix is a FILE based Input/Output OS. That means for every process there is a file on disk to represent it. This design allows Unix, and in fact all *NIX based OSes including Linux, to operate in a very small memory environment but still be multitasking. This multitasking is maintained by a memory manager that rolls processes out of memory as new processes are needed in memory.
Lets me say that again: iOS has a memory manager that checks to see if a process will fit into the remaining memory space and if it doesn't it unloads processes until it does.
While that statement's ramification sinks in lets go over the steps that occur.
1) iOS is running the user interface, Springboard.
2) iOS is time slicing thru core applications such as listen for push notifications, check hardware interrupts, check software interrupts, poll external data sources.
3) iOS is flagging each process based on what that process did during its time frame of CPU usage.
Note to all OS guys: Yes I simplified the hell out of how it really works. Please for the love of all things holy don't turn this discussion into the finer points of round robin process execution and how it is accomplished.
Now you decide to make a phone call. The task managers first issues is to poll the OS process list and see if the app is in memory already. If it is, bring the application/process out of sleep/wait mode and make it active.
But lets say it isn't in memory. Task manager then asks the memory manager to free up X amount of memory based on the applications requirement. Memory manager now has to look at every process in memory and see what state it is in. Is it marked as Wired (a priority to keep a process in memory no mater what)? Yes? Skip. Is it running? Yes? Skip. Now for the remaining processes not running or marked as wired, they each have a set of flags that have been collected over time. How many times the process has been used, how much CPU time it has used and a few other items. Those flags help the memory manager determine who is a candidate for being unloaded from memory.
Now I just listed a lot of events. And there is a LOT of code executing to accomplish this. But here is the really cool part. It happens in less than a tenth of a second. You won't even notice something that happens that fast. Your finger will still be pulling away from the screen by the time this whole process has finished.
So now we have determined that iOS is capable of choosing which apps need to stay in memory versus which don't to load a new app.
But about now the OCD "I have to clear memory manually" users are thinking, ok I am just helping the OS do its job. No harm, no foul. And technically you are 100% correct. Except you are now causing the CPU to execute more which in turn uses more battery.
That's right. There is actually a PENALTY involved in what you have done. Because iOS and Android both try to save battery and CPU execution time by keeping as many apps in memory at one time as possible. This keeps it from having to move applications from external storage to internal memory. Which costs battery life. Pure and simple.
Now the next argument used by people who use task killers is "But if you leave an application in memory it is wasting CPU time". The simple answer is "wrong". If an application has now actively running code then the task manager doesn't even bother to touch it as it executes processes.
BTW, the next argument I always hear on this subject is "But it makes me feel better and in control". You know what, I don't even bother to argue that point. Because if the logic of the how things work doesn't convince them they are wasting their time and their phones battery, then nothing is going to change their mind.