Multi Tasking was introduced in Windows Phone 7.5. With phones coming up with faster processors and better multi taking functionalities battery issues are bound to arise and are always a problem now a days with the so called smart phones with great hardware and big screens. Microsoft however wanted the Windows Phone OS to have a balance between the multi tasking capabilities and battery performance.
What Multi tasking functions does Windows Phone have?
Multi tasking basically comprises of these functions, each have a limit independently:
Limit of Background Agents (background task)?
In an open platform system like Android basically I can have unlimited amounts of apps running in the background, the only limit is by the hardware ram I have. Plus the more apps running live in the background the more data and battery gets consumed. So what Microsoft has done is limited the number to active applications to just 5. Unfortunately there is no task killer, holding and pressing the back key brings up a task switcher kind of interface where I can only see the last 5 screens (they may not necessary be apps). I may switch to them but there is no way to kill anything. This is not the major problem though.
The problem is basically having hard limit set on the background agent by the manufacturer which cannot be increased or decreased by the end user. Today when using my Lumia 800, I tried to activate live tile notifications on my handset in an app and got a warning message that I cannot. Why? Because too many background task are running and the phone is saying my Lumia 800 has a limit of max 9 background task. That means I cannot have more than 9 apps running in the background providing me with Live Updates or push notifications.
Period and Resource Intensive Agents
Lets go to the basics and understand what is happening here. There are two types of background agents: Periodic Agents and Resource Intensive Agents.
Resource Intensive agents are meant for tasks that will consume a large amount of system resources and come with several limitations for when they can be run. A typical scenario for this type of task is synchronizing large amounts of data to the phone while it is not being actively used by the user. One example is the WiFi sync option with Zune is a type of resource intensive agent.
Periodic agents on the other hand run for a small amount of time on a regular recurring interval like every 30 minutes or so. Typical scenarios for this type of task include uploading the device’s location and performing small amounts of data synchronization. Example apps are your typical Twitter, Facebook, RSS readers, News and Weather apps, etc which require to run every 30 minutes in the background to sync data and update live tiles, send push and toast notifications.
To fully understand the limitations refer to the Background Task Overview for Windows Phone article on MSDN
The basic issue is there are limits to these agents. Firstly there is no warning given to the end user if a resource agent crosses the limit. If the pre defined scenarios changes or are not met in the first place the agent gets terminated immediately or does not run at all. a msdn help article states:
"Due to the constraints on the device that must be met for resource-intensive agents to run, it is possible that the agent will never be run on a particular device. For example, if a user does not have access to Wi-Fi or a PC, they may never have a non-cellular connection and the resource-intensive agents on their device will never run. Also, resource-intensive agents are run one at a time, so as more applications that use resource-intensive agents are installed on a device, the likelihood of an agent running becomes even less. You should consider this when designing your application."
The Periodic agents have a limit which can be device specific. It means the manufacturer has control over the configuration. Microsoft says:
"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."
The limit of this for my Nokia Lumia 800 is set to 9. So anytime I have more than 9 apps running in the background, when I try and start a 10th app background task, I will get a warning as given in the screenshot above. This seriously hinders the experience on a Windows Phone. if you want to download more apps and do a lot of things on the phone and if these apps require live updates, you basically will have to prioritize which ones are more important and make sure the total number is within limit set.
What Microsoft could have done is given an option to increase or decrease the limit to the end user where a default limit is set by the Manufacturer. For example in my case, Nokia has a limit of 9 background task set on the Lumia 800. Now when I cross this limit, the phone should actually tell me and warn me that battery performance will be reduce, if you want more apps to run in the background increase the limit manually. To have an experience where this does not result in a crash, an upper limit could have been set. So instead of a fix limit, a lower, default and upper limit would make more sense and give some control to the user. I would not mind compromising a little battery performance if I could have 15 apps running in the background task instead of 9. Would make a hell lot of difference for me. It should be up to me how I get to use the phone.
Now I am sure devices from Samsung, HTC and LG may have a different limit set. I had a HTC HD7, but I never got this message before, but then again I was not using so many apps then.
Have any of you ever got this message? If yes, mention your brand, model and the limit that is set. For experimenting, you can actually turn on live tile updates in apps and see when it gives you a warning.