Nothing gets people quite worked up like phones and multitasking. One of the first things to pop out of MIX10 was “Oh no … no multitasking. Windows Phone is not for real users. Windows Phone is only for toddlers”.
Let’s take a deep breath and see if we can take an objective approach to evaluating Windows Phone 7 Series and its approach to multitasking.
Here are some of the standard ways to multitask and how Windows Phone 7 tackles the problem.
Running two programs in the foreground
On a PC, one common computing theme is to have two programs open at once. For instance, I might have Excel open on one monitor and Outlook open on another so I can type an email based on what’s in the spreadsheet.
Can WP7 do it? No. But then again, would you want it to? Running two programs side by side on a handheld device is of questionable value. So I don’t think WP7 loses any points for not multitasking in this way.
Getting notifications from a program that’s not running
Another way you can multitask is to have one program in the foreground but get alerts from a program in the background. Think of browsing the web and getting a meeting reminder from Outlook.
Can WP7 do it? Yes, mostly. Through Push Notifications, you can notify a user when something exciting is happening in your world, even if your app isn’t running. One drawback is that this only works if your phone is online, since Push Notifications are an over-the-wire service.
Quickly switching between running applications
Some look at multitasking as just being able to switch back and forth between applications without waiting for each application to start from scratch each time. Think of rapidly Alt-Tabbing between Word and Outlook while composing an email.
Can WP7 do it? Yes, mostly. When you switch from App A to App B in WP7, App A is not immediately killed off. It is suspended, ready to resume if you switch back from App B to App A. Now, if you also open apps C through Q, then yes, App A will be killed to make room for all the other apps that are opening. But if you are just switching back and forth between apps, chances are that the experience will be snappy since the first app will not have been killed off. You can tell that this pattern of working is well-supported by Windows Phone 7 because the hardware back button is designed to work across applications, quickly taking you back through your application history. Of course, if one of the apps is a memory-hog, processor-crazy game, then all bets are off – every other app will be summarily executed to make room for it. But this is how it should be. No one wants all their apps hanging around forever chewing up resources. Which brings us to the final way to multitask
Running an application in the background
This is the big one. When people dismiss Windows Phone 7 Series as not being able to multitask, they are generally talking about the inability for an application to run actively in the background. On the PC, think of Windows Media Player continuing to play music even though it’s not the foreground application. Or think of a custom line of business app that continues to synchronize with a central server in the background.
Can WP7 do it? Not for you. Because your application will be suspended and possibly killed when another application is made active, your application cannot continue to run in the background. You can still do push notifications, and chances are your application will still be running for a quick switch back, but it cannot continue to access phone resources or services unless it is the foreground application.
Note that this only applies to applications that you write, though. First-party applications such as Internet Explorer and Zune Player can still do their thing in the background. IE will continue to download content, and Zune Player will keep playing music even if they are not the foreground application.
This is both a blessing and a curse. Not allowing applications to run in the background prevents abuse by a non-active application. It’s not hard to imagine a developer writing an application that constantly polls location services in the background, draining the battery while the user is unaware that anything is even happening. But it’s also not hard to imagine how handy it would be to have an application that can sync while in the background. But for now, no background running for you.
Summary
The first release of Windows Phone 7 Series does offer multitasking in the form of fast application switching and push notifications. It does not offer the traditional background processing that is associated with software multitasking for third-party applications at this time. This is probably a bigger frustration to developers than it is for end users, and with the focus on focus for WP7, it’s to be expected that not every developer-friendly features is going to ship at launch.