Make Metro apps more useful - ask Microsoft to let them run in the background


Recommended Posts

Currently, a big part of the reason why you can't find many useful Metro apps is that they can't do work in the background: as soon as an app is not on screen it stops whatever it's doing.

Since Microsoft is looking for feedback on how to improve the WinRT API, vote for allowing Metro apps to execute tasks in the background. If enough people show interest, Metro apps could get a lot more useful than they are now.

Link to comment
Share on other sites

So that's why spotlite doesn't stop playing when I switch to modern ie or anything else...

 

Modern apps can run in the baground if the developer has set it to.

Link to comment
Share on other sites

As Hawkman has said, load of bollocks. As a dev you can easily allow your app to run background tasks.

 

In addition if you kept up to date with the Modern api they've opened it up even more ala Silverlight 5 whereby in an enterprise environment you can gain access to the win32 layer and do as you please.

 

They'll keep on this path as well as Modern will end up being the desktop replacement.

  • Like 2
Link to comment
Share on other sites

Are you for real? If you want that, just go use android. Metro apps can run in background perfectly fine where it is applicable.

Link to comment
Share on other sites

There are specific cases where they can keep doing something in the background, but it's not like desktop apps that can keep their main or sub processes going until the app is closed.  In the case of store apps, things like background audio is one thing, specific background file transfers is another that I know of.  And pretty much that's about it, there's things that are related to notifications coming in that can trigger a background task for the app but yeah, not the same thing.

 

The idea is good for battery but if/when we get metro apps in windows on the desktop then battery isn't a factor.  It should be easy to let the OS know that if it's on main power and not battery to let apps keep running and don't suspend them, then change it back if the system is on battery but give users options for which apps they want to keep running regardless.

Link to comment
Share on other sites

The idea is good for battery but if/when we get metro apps in windows on the desktop then battery isn't a factor.  It should be easy to let the OS know that if it's on main power and not battery to let apps keep running and don't suspend them, then change it back if the system is on battery but give users options for which apps they want to keep running regardless.

Then you will start to get tons of apps that do not need to run on background running in background and then not working properly on mobile devices.
Link to comment
Share on other sites

Then you will start to get tons of apps that do not need to run on background running in background and then not working properly on mobile devices.

 

It's not so much a case of running in the background doing nothing.  Lots of apps, desktop apps, just sit there, the only impact they have to the system is that they take up RAM, just like metro apps do.  Out of all the apps I have running right now on my desktop only 3-4 are actually using CPU cycles, others sit and wait till I switch to them and do something.  I don't see this as a huge impact, even on mobile, to battery life or even performance yet what you do get is faster switching between apps and so on like you do right now under Win32.

 

Besides, the API request isn't for generic "background tasks" it's for them to raise the arbitrary limits they have in place that can get in the way.  Why, for example, do we have to limit the number of apps that can "run under the lock screen" to 8 or 10?  Everyone loves choice, so why not just let me pick as many as I want?  It's my device and my battery and if we're on the desktop why do I even care about the impact to power?  The system should be smart enough to not suspend apps in this case, and it's the OS that handles suspending apps, not the apps, the only thing apps have to do is make sure they save their state when the OS tosses them a notice saying they're going to get suspended or killed soon, that's it.  

 

This is more about the limits of what they have in place now and not the lack of it altogether. 

Link to comment
Share on other sites

The lock screen restrictions are only for apps that can run on the lock screen. There is no restriction for background tasks for active apps as far as I know. Xbox Music can run in the background but doesn't take  up a lock screen allocation.

Link to comment
Share on other sites

Currently, a big part of the reason why you can't find many useful Metro apps is that they can't do work in the background: as soon as an app is not on screen it stops whatever it's doing.

Since Microsoft is looking for feedback on how to improve the WinRT API, vote for allowing Metro apps to execute tasks in the background. If enough people show interest, Metro apps could get a lot more useful than they are now.

Many apps do not run in the background - by design. Many don't need to. Once the app looses focus, and is moved to the background it's services are suspended so that the memory it was consuming is freed for other applications to use.

Link to comment
Share on other sites

What they should do is add a bar on the bottom showing all of the running programs that lets you switch between them.

 

Oh, wait, that sounds familiar.

Link to comment
Share on other sites

Currently, a big part of the reason why you can't find many useful Metro apps is that they can't do work in the background: as soon as an app is not on screen it stops whatever it's doing.

 

 

That could explain why Skype RT calls don't work when the app is not full screen.

 

Way to go Microsoft.

Link to comment
Share on other sites

That could explain why Skype RT calls don't work when the app is not full screen.

 

Way to go Microsoft.

i don't know what you're talking about, the metro skype app works just fine in the background when making calls for me & the rest of my family (and a few friends i know use it as well)

Link to comment
Share on other sites

Skype works fine for me, too. Maybe remove it and reinstall?


What they should do is add a bar on the bottom showing all of the running programs that lets you switch between them.

 

Oh, wait, that sounds familiar.

 

Uh... look on the left side of the screen... :/

  • Like 2
Link to comment
Share on other sites

Uh... look on the left side of the screen... :/

 

My point was that just adding the task bar back and running Modern apps in regular windows is essentially the same as traditional Windows. Stardock's ModernMix does this admirably.

 

But whatever.

Link to comment
Share on other sites

Skype works fine for me, too. Maybe remove it and reinstall?

 

Uh... look on the left side of the screen... :/

 

http://community.skype.com/t5/Windows-desktop-client/Modern-Skype-doesn-t-work-in-background-multitask/td-p/1797808

 

Why would i lose time fixing a metro app ? It should work out of the box. Modern apps are supposed to make my life easier not the other way around.

Link to comment
Share on other sites

http://community.skype.com/t5/Windows-desktop-client/Modern-Skype-doesn-t-work-in-background-multitask/td-p/1797808

 

Why would i lose time fixing a metro app ? It should work out of the box. Modern apps are supposed to make my life easier not the other way around.

 

Apps break. It happens on both the desktop and modern side of things. Even on Linux/OS X/Android/iOS/WP/Android and so on. Apps sometimes just break.

Link to comment
Share on other sites

It's not so much a case of running in the background doing nothing.  Lots of apps, desktop apps, just sit there, the only impact they have to the system is that they take up RAM, just like metro apps do.  Out of all the apps I have running right now on my desktop only 3-4 are actually using CPU cycles, others sit and wait till I switch to them and do something.  I don't see this as a huge impact, even on mobile, to battery life or even performance yet what you do get is faster switching between apps and so on like you do right now under Win32.

 

That's actually pretty much all wrong.

 

Your desktop apps aren't just sitting there. They're receiving window messages all the time. Many have timers going even when not needed. They have file handles open, network connections open, some will redraw things when not needed. It doesn't matter if they're only using a tiny bit of CPU, the fact that they use it at all causes the CPU to wake up. The effect of this on battery life is substantial.

 

Modern apps actually can and are evicted from RAM automatically by the system (using two different mechanisms depending on the system's I/O versus CPU+RAM characteristics). RAM usage actually affects battery life, too. And the system's ability to manage that greatly increases performance and reduces paging.

 

Apps can already run anything they want in the background, just subject to strict limitations around triggers and the resources available to them. There's also a pool of shared background resources for each time period (I forget if it resets every 15 minutes or hour or what not), which the system will divvy out until it's gone, and then replenish for the next period. Furthermore, the system already ups those limits substantially when on AC power, and lets any app use the Maintenance trigger to start background tasks when that's the case.

 

The main thing not accommodated in the current model would be a CPU-intensive long-running background task like encoding a video. Having a solution for that, particularly something where the user is in control and can monitor or pause/terminate the background task, would be nice. But it is important to ensure that isn't abused at the expense of user confidence in the system (which includes predictable battery life that isn't substantially affected by which apps you use or install).

  • Like 2
Link to comment
Share on other sites

That could explain why Skype RT calls don't work when the app is not full screen.

 

Way to go Microsoft.

When you first started the app, I think it Windows asks if you want it to let it run in background. You probably said no.
Link to comment
Share on other sites

When you first started the app, I think it Windows asks if you want it to let it run in background. You probably said no.

 

That might be it. How do i change that? I don't see it in the options of the app.

Link to comment
Share on other sites

That might be it. How do i change that? I don't see it in the options of the app.

The setting is located in the app's permissions tab. You'll find it at the bottom.

Link to comment
Share on other sites

The main thing not accommodated in the current model would be a CPU-intensive long-running background task like encoding a video. Having a solution for that, particularly something where the user is in control and can monitor or pause/terminate the background task, would be nice. But it is important to ensure that isn't abused at the expense of user confidence in the system (which includes predictable battery life that isn't substantially affected by which apps you use or install).

 

(Disclaimer: I exclusively use and create stuff on Microsoft's platforms.)

 

Which pretty much kills the idea of using WinRT to do something serious. Look at this situation:

 

-Playing Hearthstone which is an online turn-based CCG. When the game is in background, the game and the audio are still playing to notify me of how my enemy's turn is going, or if someone has just messaged me.

-Encoding WAVs into MP3s with LAME and FLACs with FLAC at the same time using the same files by using simple shortcuts for the encoding apps with appropriate parameters. This is being done in the background because there is ABSOLUTELY NO REASON to see the progress. The files will get verified and all that so there is absolutely no risk to react to anything.

-Remuxing a 64+GB big Lord of the Rings The Return of the King from a ripped files into a simple MKV file. No need to SEE the progress of the process after it has started, as sounds will play at any errors / end of the remuxing process.

 

-First point, user is just playing a simple game, stupidly simple use case.

-Second point, user just bought some high quality tracks from Beatport or Junodownload and is preparing them for archival and mobility purposes, stupidly simple use case.

-Third point, user is preparing his high quality ad- and crap-free movie for archival and playback purposes, again, stupidly simple use case.

 

Using WinRT, doing all these at the same time is impossible. Why? There is no LOGICAL reason. The user themselves initiates all of the mentioned tasks. They are aware that encoding / remuxing files is a CPU-heavy operation, and that when playing an online multiplayer game, the game won't just suddenly crap out, but it will continue to run and be ready whenever the user switches to it.

 

You mention that limits are implemented to ensure that the hardware resources are not being abused at the expense of the user's confidence in the system. Keyword here, ABUSED. By developers. The very people that Microsoft DEPENDS on to promote their platform. Furthermore, lets take a look at the WinRT documentation, missing examples, information about exceptions, and not to mention how infuriating is to rely on when one's trying to use WinRT on Windows Phone, with bunch of misleading links and information everywhere.

 

Taking into account the number of frameworks, runtimes, and whatever else (mind you, perfectly working solutions that were left to die due to the company's insane internal politics / crap) that Microsoft has abandoned during the last two decades, please tell me how are Microsoft going to inspire confidence in their solutions?

Link to comment
Share on other sites

It would be useful to say be able to develop a screen recording app and let IE run sound in the background, which it doesn't. In order for IE and XboxVideo to run in the background with audio playing from both a Windows 7 type sound mixer would need to be integrated in the Modern UI (of course updated UI with more functionality)

Link to comment
Share on other sites

(Disclaimer: I exclusively use and create stuff on Microsoft's platforms.)

 

Which pretty much kills the idea of using WinRT to do something serious. Look at this situation:

 

-Playing Hearthstone which is an online turn-based CCG. When the game is in background, the game and the audio are still playing to notify me of how my enemy's turn is going, or if someone has just messaged me.

-Encoding WAVs into MP3s with LAME and FLACs with FLAC at the same time using the same files by using simple shortcuts for the encoding apps with appropriate parameters. This is being done in the background because there is ABSOLUTELY NO REASON to see the progress. The files will get verified and all that so there is absolutely no risk to react to anything.

-Remuxing a 64+GB big Lord of the Rings The Return of the King from a ripped files into a simple MKV file. No need to SEE the progress of the process after it has started, as sounds will play at any errors / end of the remuxing process.

 

-First point, user is just playing a simple game, stupidly simple use case.

-Second point, user just bought some high quality tracks from Beatport or Junodownload and is preparing them for archival and mobility purposes, stupidly simple use case.

-Third point, user is preparing his high quality ad- and crap-free movie for archival and playback purposes, again, stupidly simple use case.

 

Using WinRT, doing all these at the same time is impossible. Why? There is no LOGICAL reason. The user themselves initiates all of the mentioned tasks. They are aware that encoding / remuxing files is a CPU-heavy operation, and that when playing an online multiplayer game, the game won't just suddenly crap out, but it will continue to run and be ready whenever the user switches to it.

 

You mention that limits are implemented to ensure that the hardware resources are not being abused at the expense of the user's confidence in the system. Keyword here, ABUSED. By developers. The very people that Microsoft DEPENDS on to promote their platform. Furthermore, lets take a look at the WinRT documentation, missing examples, information about exceptions, and not to mention how infuriating is to rely on when one's trying to use WinRT on Windows Phone, with bunch of misleading links and information everywhere.

 

Taking into account the number of frameworks, runtimes, and whatever else (mind you, perfectly working solutions that were left to die due to the company's insane internal politics / crap) that Microsoft has abandoned during the last two decades, please tell me how are Microsoft going to inspire confidence in their solutions?

 

None of the tasks you listed are something you would delegate to a Metro app. That's why there's a desktop mode. As for Hearthstone, you absolutely could pull off the scenario you cited. Messages are push notifications, which WinRT supports.

 

If you want a WinRT app that manages encoding you absolutely can do that. Just create a service that automatically encodes media items dropped in a user folder and pushes notifications.

Link to comment
Share on other sites

It would be useful to say be able to develop a screen recording app and let IE run sound in the background, which it doesn't. In order for IE and XboxVideo to run in the background with audio playing from both a Windows 7 type sound mixer would need to be integrated in the Modern UI (of course updated UI with more functionality)

 

IE plays sound when it's in the background unless something on the desktop is locking the mixer for exclusive use. Steam is the big offender for me. You can turn off "exclusive mode" in the sound settings and everything works fine.

Link to comment
Share on other sites

This topic is now closed to further replies.