We've all been there. A really useful application with its own live tile - a classic example is Bitcoin Rate Lookup, featured here - the live tile promises to keep me informed as to the value of the cryptocurrency, yet I know that all I'm really seeing is a value delayed by up to 30 minutes. And often seemingly up to half a day, or longer, depending on what else I'm doing on my Windows Phone at the time and on what else I have installed. Which is, patently, not good enough. The same applies to many other applications which present informational live tiles, from stock checkers to news headlines to weather forecasts.
The problem is the rather draconian set of limits that Windows Phone places on 'scheduled'/periodic background tasks. It's all in an effort to keep performance good for the user and to keep battery life acceptable. As I wrote when investigating Podcast Lounge, which uses the parallel system of 'resource intensive background agents':
Every Symbian or Android user knows that sinking feeling when you pick your phone out of your pocket and it's very warm - too warm, indicating that some application or game has not only been left running but is soaking up vast amounts of processor time - and thus battery power. With Windows Phone, the idea was to place stringent restrictions on what could still be achieved by an application once it was no longer in the 'foreground'. In fact, with 'fast app resume' there's enough of a pseudo-multitasking 'experience' for most users...
Thus, with the current version of Windows Phone 8, so-called periodic background tasks (e.g. checking an online resource and reporting a new figure, as with the Bitcoin example) can only run once every 30 minutes at most, and then only for 25 seconds and they mustn't exceed using a certain amount of RAM (the figure varies according to device, but it's low, under 25MB at most). And there are limits, per device, of how many periodic background tasks can be scheduled in the first place. According to the official documentation:
To help maximize the battery life of the device, there is a hard limit on the number of periodic agents that can be scheduled on the phone. It varies per device configuration and can be as low as 6. There is another limit, which is lower than the hard limit, after which the user is warned that they have multiple background agents running and may, therefore, experience faster battery consumption.
Let me get this straight. I have a 2014 smartphone with multi-core, multi-GigaHertz processor, up to 2GB of RAM and I'd like it to be the all-singing, all-dancing hub of my digital life. I've typically got around 30 third party applications installed, and I'm not even considered a power user here - I know iPhone and Android users with 50 or 100 applications installed and used regularly. And yet only six (or so, essentially picked at random) of these can do anything useful in the background? And even then, they can only do this every half an hour and under extreme restrictions?
No wonder half my live tiles are 'stuck' and don't update properly. And it also explains why pruning my smartphone to get rid of applications which aren't absolutely essential helps in keeping live tiles 'live' - more of the six (or so) periodic slots are freed up. It can also help to manually block certain applications from getting scheduled in the first place - this tip is documented here and is easy to work through.
There have also been reports (e.g. here) that live tile updates (i.e. driven by periodic background tasks) stop if more than 20 third party applications are installed which have live tiles (regardless of whether they're disabled in settings or unpinned).
I absolutely understand that good intentions were at the heart of Microsoft's restrictions here - and, on the relatively primitive Lumia 800 from 2011, probably made sense in keeping the user's experience snappy. But times have changed and hardware is dramatically more powerful on almost all Windows Phones, so the rules on what applications can and can't do when not squarely in the foreground need to be relaxed - a lot.
Happily, we've already heard (leaked under NDA!) reports from developers playing with the Windows Phone 8.1 SDK that periodic background tasks can now run once a minute if needed - and hopefully with:
- more generous RAM limitations
- a much higher hard limit on the number of periodic background tasks that can be scheduled
We'll find out for sure in April, at BUILD.
The thing is that smartphone users aren't stupid. So a power user installs 50 applications, all with live tiles or other background task requirements, potentially hammering even the fastest Snapdragon 800-powered Windows Phone. The UI, normally snappy and instantaneous, might - occasionally - stutter a little, and the live tiles might stop updating. The power user will rightly think "Hmm... maybe I've overdone the apps a little, I'll do a little pruning" and then all will be well again.
The novice, beginner, users won't ever run into these problems in the first place because their expectations are much lower and because they'll install an awful lot less (or, usually, just Facebook and a load of games). But the current background task restrictions are hurting the enthusiasts and power users and I'll bet that an awful lot of these will join me in wishing Windows Phone 8.1 would arrive sooner rather than later.
Clever money is on there being a similar 'Preview for Developers' made available for Windows Phone 8.1 (here's the write-up for the GDR3 equivalent back at the end of 2013) ahead of manufacturer-specific over the air updates. In which case signing up to the appropriate programme to get on board to try this out nice and early may well be a way forward for all those as frustrated as me.
In case anyone's curious, I signed up for this preview programme and 8.1 isn't available - yet. But I'll be hitting refresh in the first couple of weeks of April....
PS. For chapter and verse on Windows Phone 8 multitasking, see the official Microsoft page here.