To posters in general: using the phrase "true multitasking" doesn't win you any arguments, it only means you don't know what you're talking about regardless which team you're cheerleading for.
The word "multitasking" refers to many things. Conflating the contexts only makes people more confused.
At the kernel level, all 4 OS's (iOS, Android, WP7, and webOS) have preemptive multitasking. Which is to say, the same kind of multitasking abilities as your modern desktop computer. Timers are triggered, interrupts happen, context switches occur, new task is running. For all intents and purposes, I doubt anybody will find any reason to believe any of them are better than the others at this level.
Beyond this point, I don't have any information about WP7 as I don't own a WP7 device. On the other hand, I do own the others.
At the user application level (aka, "what does the multitasking system impose on each individual app"), everything differs.
iOS) Apps are suspended and or killed in the background. (with rare exceptions)
*Benefits include lowering system overhead, guaranteeing that the developer needs to be aware of state, less need for physical memory, more predictable UI latency, reasonable guarantee that 3rd party apps cannot do stuff without you knowing about it. It also means battery life is solely dependent on the OS and the foreground app.
*Downsides: less control over application running state, as in inability to indefinitely run an arbitrary app in the background. (in the long run, most users will consider this "problem" to be a benefit when you consider Android.)
Android) Apps each run on top of their own Dalvik VM process. These VM processes continue to run when their UI is backgrounded.
*Benefits include full developer control over process lifetime. This gives the developer flexibility. Since Dalvik uses Java as the model for the language, it's very familiar to the common Java developer to get started with; although some things like Activity are a bit odd.
*Downsides: Most developers don't know how to behave properly as they previously developed in an environment which had a glut of resources. This typically means that apps will continue to consume resources that are not vital to the backgrounded app, and allow developers to continue bad habits, leading to the need for more memory compared to iOS and webOS and worse battery life.
Don't argue with me on this; even Larry Page agrees:
http://www.techradar.com/news/phone...your-android-battery-should-last-a-day-690439
webOS) There doesn't appear to be any documents stating exactly whether or not each apps gets its own Javascript VMs instance, but all evidence points in that direction. These VM processes continue to run when their UI is backgrounded unless the device goes to sleep. (
https://developer.palm.com/content/api/dev-guide/mojo/background-applications.html)
*Benefits: Use of Javascript/HTML/CSS makes it easy for any web developer to start making basic apps. Since most web apps are event driven with controlled polling, it's easy for a web developer to make a well-behaved app.
Developers could continue to do operations in the background as long as the device is awake.
The callback timer is easy to configure.
*Downsides: It's a web app. Great for most apps, but overhead will eventually grow faster if you need to make more complex apps. Once you leave for the native SDK, then you lost most of the benefits.
At the UI level (aka, meta-app level)(aka, "how do I go from task to task"):
All three allow you to switch to existing apps by using the launcher. Notifications menu also allow switching to related app.
iOS) Double tap home button for recent apps. Can kill some apps by holding down and clearing recent apps list.
Android) Nothing else unless the custom Android distro included something. (I only have ASOP.)
webOS) Card views show you state of app. Tap to enter. Flick to kill. Slide for more.
In summary:
At the kernel level, everybody's equally good.
At the meta-app level, the card task switcher is just plain awesome. Everybody else pales in comparison.
At the app level, it depend on what you value. iOS gives you the least flexibility but more consistent and higher quality because you're pressed into a "best practice or nothing" situation. webOS gives you ease of development (if you're familiar with web tech), higher likelihood that you'll naturally do the right thing, more flexibility than iOS, and more performance than Android. Android gives you the most freedom and the longest leash, of which most developers will use to hang themselves with.