Arbitrary background tasks
Save for a few narrow use cases, apps are prevented from working in the background (the current backgroundtask has too many resource constraints (http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977056.aspx#Background_task_resource_constraints) to be useful).
This effectively makes creating entire classes of applications (file archiver, video transcoder, ftp/irc clients, to name just a few) impossible.
I understand power consumption is a consideration, but a more balanced middle ground, like only allowing more intensive background tasks when the system is plugged in and/or giving users clear indications such activity is occurring (liek Android does in its notification bar) so that they know why battery life is being impacted, would make the WinRT environment much more useful, and in turn drive adoption.
My app transcodes video clips among other things. I'm still looking for a way how to convince my customers to keep gazing at the progress bar instead of reading some news or checking emails in the meantime.
@Bobby6155: Yes, and the background task gets a whole 2 seconds of CPU time every 15 minutes at most.
For a lot of use cases, this is not remotely enough.
This already is possible: http://www.neowin.net/forum/uploads/monthly_06_2014/post-175510-0-49105700-1403619883.png
WP really needs to let more things like camera for example to run in the background if it ever wants to catch up to Android apps.
- 3 votes for this crap suggestion.
Alberto Fustinoni commented
If we are to see WinRT applications evolve past the current Facebook/Twitter/Website wrapper in native app fare, this needs to happen.
Windows has a dire need of an API to replace Win32, in much the same way Apple desperately needed to get away from Mac OS Classic with Cocoa: WinRT really could be the replacement we need, if only Microsoft would relax restrictions like this.
It's a must have feature. Lack of "Run under lock screen" option for Store apps actually made situation with background tasks much worse compared to what we have in Silverlight apps. That alone is the reason I won't be able to change my app type to universal anytime soon.
As a protection from rogue apps I suggest that in order to enable this feature user has to manually go to Settings and allow particular app to run full-fledged background task (i.e. there is no way to enable it from within the app itself). And of course action center should display currently running task with ability to stop it.
There are thousands of possible uses like background file transfer using non-http protocols (SMB/CIFS, SFTP, Skype), communicating with server with TCP connection surviving app switch, CPU intensive calculations etc.