Programming Note: This site will be on break through the holidays and return in January. Be sure to subscribe or check back for updates!

Article: iOS Multitasking

by on January 4, 2012

iOS multitasking is an odd duck for many to understand. The particular post in question has been shared on a few places I frequent regularly, but I thought that it was worth sharing on here, too. Most people are doing it wrong.

As Fraser Speirs wrote, things in the multitasking bar are actually inactive, although people always think that closing them will free up resources and battery power:

There is one iOS “tip” that I keep hearing and it is wrong. Worse, I keep hearing it from supposedly authoritative sources. I have even heard it from the lips of Apple “Geniuses” in stores.

Here is the advice – and remember it is wrong:

All those apps in the multitasking bar on your iOS device are currently active and slowing it down, filling the device’s memory or using up your battery. To maximise performance and battery life, you should kill them all manually.

Wrong. Wrong. Wrong. Wrong. Wrong. Wrong. Wrong. There are caveats to this but anyone dispensing the advice above is clearly uninformed enough that they will certainly not be aware of these subtleties.

Let me be as clear as I can be: the iOS multitasking bar does not contain “a list of all running apps”. It contains “a list of recently used apps”. The user never has to manage background tasks on iOS.

Except in a few cases, which I’ll explain, the apps that appear in the multitasking bar are not currently running. When you press the home button, iOS will tell the app to quit. In almost all cases, it quits, it stops using CPU time (and hence battery) and the memory it was using is eventually recovered if required.

When my iPhone 4’s home button was acting up, the Genius at my local Apple Store initially tried to tell me that it was “all the apps I had running”—eventually they replaced it anyway, but this bad advice has got to be bad for consumers who have limited knowledge. Also, with Mac OS X 10.7 Lion trying to go this route, you have potentially more people worrying about what is running.

Update: Speirs has updated his site with a new post explaining memory usage and the different states in detail, complete with Xcode monitoring. Worth a look if you want geeky proof.

This post has been filed in Articles