As the horsepower packed into mobile devices gets ever greater, more full-featured forms of multitasking are possible. The market leaders have very different ways of going about things, and there are numerous misconceptions about what is going on behind the scenes. This isn’t all the fault of the user, though. In the interest of ease of use, sometimes the multitasking metaphor is overly simplified on both Android and iOS.

iOS: It’s more complicated than it looks

Ever since iOS 4, Apple’s platform has had a limited form of multitasking accessed with a double tap of the home button. The multitasking bar is displayed at the bottom of the screen, and allows you to flip between apps. A long-press on an icon lets the user remove an app from the multitasking bar. You might think this is closing a background app that is easting up resources, but that’snot the case.

Apple only intended the multitasking bar to be a list of recent apps, not apps that are running in the background. It’s not a task manager, no matter how much it looks like one. In fact, almost nothing in the multitasking bar is truly “multitasking.” Apple’s tightly controlled platform instructs most apps to stop running code when the home button is pressed.

There are five states of app activity on iOS, with the least interesting being Not Running, and Inactive. Not Running simply means the app is closed or hasn’t been launched. Inactive is a running app that isn’t running code, for example if the device is asleep. Active is the state of an app when it is in the foreground being used.

When an iOS user hits the home button, an Active app moves to Background. A Background app is not on the screen, but is still executing code. Most Background apps immediately switch to Suspended mode. A Suspended app is cached in memory, but uses no processor cycles, and thus is running no code on the device. If the device needs more memory for a game or other large app, Suspended apps will be cleared from RAM.

Apps are only allowed to remain Background tasks and run code for longer than a few seconds in specific circumstances. A series of tightly controlled APIs allow indefinite backgrounding for things like VoIP, location tracking, and audio playback. None of this has any bearing on what is in the multitasking bar. A well-written app should suspend itself when it’s done running code, and users shouldn’t really have to monitor such things on iOS.

Next page: Android multitasks like a boss