How important is it for a mobile device to support background multitasking?
Specifically, how important is it that users can install, onto the device, applications which will continue to run well in background whilst the user is simultaneously using the device for another purpose?
Humans are multitasking creatures. We get involved in many activities simultaneously: listening to music, browsing the web, holding conversations, taking notes, staying on the alert for interruptions… – so shouldn’t our mobile devices support this model of working?
One argument is that this feature is not important. That’s because the Apple iPhone fails to offer it, and the sales of the iPhone don’t seem to have suffered as a result. The applications built into the iPhone continue to operate in background, but downloaded apps don’t. iPhone apps continue to sell well. Conclusion: mobile multitasking has little importance in the real world. Right?
But that’s a weak argument. Customer sentiment can change. If users start talking about use cases which the iPhone fails to support – and which other smartphones support well – then public perception of the fitness of the iPhone system software could suffer a significant downturn. (“iPhone apps – they’re so 2009…”)
How about Android? That offers background multitasking. But does it do it well?
My former colleague Brendan Donegan has been putting an Android phone to serious use, and has noticed some problems in how it works. He has reported his findings in a series of tweets:
I say, with all honesty that Android’s multitasking is a huge travesty. Doesn’t even deserve to be called that
Poor prioritisation of tasks. Exemplar use-case – Spotify [music playing app] + camera
Spotify will jitter and the photo will be taken out of sync with flash, giving a whited out image
Symbian of course handles the same use case flawlessly
Android really is just not up to doing more than one ‘intensive’ task at a time
Even the [built-in] Android music player skips when taking a photo
sounds like the non-real-time, high interrupt latency on Linux is causing some problems in multimedia use cases
Personally, I find this discussion fascinating – on both an architecture level and a usability level. I see a whole series of questions that need answers:
- Are these results applicable just to one Android phone, or are they intrinsic to the whole platform?
- Could these problems be fixed by fairly simple software modifications, or are they more deeply rooted?
- How do other mobile platforms handle similar use cases? What about feature phone platforms?
- How important is the use case of playing music in background, while taking a photograph? Are there other use cases that could come to be seen as more significant?
Perhaps this is a good topic for a university research project. Any takers?
(Related to this, it would be interesting to know more about the background processing abilities of modern feature phones. For example, it used to be the case that some feature phones would discard the contents of partially written text messages if there was an incoming voice call. Has anyone looked into this recently?)
Regardless of the merits of these particular use cases, I am convinced that software responsiveness is important. If the software system is tied up attending to task A when I want it to do task B, I’m frustrated. I don’t think I’m alone in this feeling.
My 1990’s Psion PDA typically runs more than a dozen apps in parallel (several word processors, spreadsheeets, databases, plus an individual agenda, tube map app, calculator, and so on) and switches instantly between them. That sets my baseline expectation.
Here’s another mobile use case that’s on my mind a lot these days. It applies, not to a PDA or mobile phone, but to my laptop. It’s not (I think) a device problem, but a wider system problem, involving network connectivity:
- I frequently find myself in mobile situations where I’m browsing websites on my laptop (for example, on the train), and the pages take ages to load;
- The signal indicator on the built-in wireless modem app says there’s a strong signal, but for some reason, wireless traffic is squeezed;
- I sit watching empty tabs on my Firefox browser, waiting and waiting and waiting for content to appear;
- In frustration, I’ll often open another tab, and try to visit the BBC website – to rule out the possibility that the server for the other web pages(s) has gone down – but that gives me another blank page;
- Eventually, things recover, but in the meantime, I’ve been left twiddling my thumbs.
When I switch to a WiFi connection instead of a cellular connection, things are usually better – though I’ve had the same bitter experience with some WiFi hotspots too (for example, in some Starbucks coffee shops).
So what should the highest priority be for system architects to optimise? Responsiveness comes high on my own wishlist. I recognise that this will often require changes in several parts of the software system.