Disclaimer – this note was made against Windows 10 Technical Preview 10041 and is purely my own experimentation. I have no additional knowledge of what’s going on with Windows 10 other than what’s publicly observable in the preview build and SDK. Your results may differ and they’ll almost certainly change between now and when Windows 10 releases.
One thing that I’ve been pondering about with Windows 10 is how the lifecycle of applications varies now that Windows Apps (formerly known as ‘modern’ apps) run inside of a Window.
Windows 8.0 made a lot of changes to the operating system for more of a ‘mobile first’ world – one where Windows Apps are (mostly) deployed from a store, are security sandboxed and are run with an awareness of power and network usage.
Those power requirements meant that a Windows App had to implement a particular lifecycle such that the application is launched and then it can be suspended if the user moves away from it and resumed when the user returns to it. It’s also possible for the application to be terminated by the operating system in the meantime should it need to reclaim resources and there’s a mechanism via which the app is re-launched in the future with a ‘special flag’ to notify it that this has happened and, in general, the app should try and make the user’s experience across that set of circumstances as seamless as possible.
In Windows/Phone 8.0 and 8.1 it was fairly easy for the OS to ‘know’ when an app could be suspended/resumed because there was largely only ever one Windows App on the screen at once. Some scenarios (especially in Windows 8.1) did allow for multiple apps on screen but it wasn’t too common.
However, in Windows 10 there’s the ‘desktop’ mode and the ‘tablet’ mode. While the latter largely preserves the Windows 8.x behavior of having one Windows App on the screen at a time the former puts Windows Apps into resizable windows and doesn’t seem to offer the same opportunities for suspend/resume of the app.
Note – that’s not a criticism. It’s likely to my way of thinking that if you’re in ‘desktop’ mode you’re probably not mobile and so you might not be too worried about your battery life.
Regardless, I thought I’d dig in with Task Manager to see if I could figure out what’s going on having first tried to make sure that my Task Manager thought that I wanted it to display suspended statuses;
I then switched into ‘desktop mode’ and ran a few Windows Apps and it became fairly apparent quite quickly that they were suspending/resuming whenever I minimized them back to the taskbar and all the apps showing as ‘suspended’ below are minimized.
It’s worth saying that in Windows 8.x this suspension used to lag around 7-8 seconds behind moving away from an application whereas here it seems to be almost instantaneous.
I thought it was ‘interesting’ to think about what happens if I hit ALT+TAB and display the task switcher and whether that would cause any of these applications to spring back into life but it doesn’t seem to – presumably the OS is displaying whatever these apps had on screen at the last time that they drew themselves.
I can (just about) see that using the alarms app to countdown on a timer because it makes it very obvious that when the app is suspended, the timer does not continue to tick down in the switcher window when the app is suspended (it does when the app is not).
Not too surprising then – it seems like in ‘desktop’ mode your app is going to be running if the user has the window open and it’s not going to be running if they have minimized the window. I haven’t tried it yet with an app that opens up multiple windows but I think they all minimize together so I’d imagine it’s the same deal.
In ‘tablet’ mode, I found it a bit more tricky to figure out what was going on. I found that when I switched away from one full-screen application such as Maps to another such as the preview of Word then Maps did not seem to suspend or, at least, Task Manager didn’t seem to show it that way.
I played with it a little because I usually run in a multi-monitor setup so I wanted to be sure that wasn’t having an impact on the results but it didn’t seem to – it seemed that it was hard for me to get Maps (or Alarms) to suspend when I was in tablet mode.
It wasn’t that apps didn’t suspend in tablet mode, it was more that I couldn’t figure out exactly what caused them to suspend and it certainly didn’t seem to be as simple as just making sure that they were no longer visible on the screen as per Windows 8.x.
As I type this sentence, I have Word and Task Manager visible side-by-side on my screen and the other Windows Apps that are running (Alarms, Maps, Music, MSN News) are not showing themselves as ‘suspended’ even though they are on screen.
I suspect (but don’t know) that this is just a temporary limitation of tablet mode as it was only recently introduced but I think it’s worth flagging that this is changing in Windows 10 with the addition of ‘desktop’ mode where, depending on usage, a typical app might spend less of its time suspended than it did in Windows 8.x.