UWP应用的后台运行

很多应用里面说由于系统限制,UWP应用最小化后不能继续运行,这不是事实,只是开发者对低劣的代码质量的借口。

UWP,全称是Universal Windows Platform,意思是通用Windows平台。UWP应用的前身是Windows 8商店应用和Windows Phone 8应用。它们是为性能较低的移动设备设计的。在Windows 10上,UWP应用的功能越来越丰富,并且担当着替代传统的Win32桌面应用的使命。

由于出身自Windows Phone,UWP这个平台有一个类似iOS的设定:伪后台。也就是说,如果一个应用没有声明后台运行的话,那么当它进入后台的时候,它会立即被挂起,并释放所占用的资源。如果你在电脑上打开任务管理器,你会发现,在你最小化一个UWP应用一小会之后,它的内存占用就会变成0.1MB,CPU占用变成0。进入后台包括在电脑上最小化应用,以及在手机或平板电脑上切换到其他应用。如果不最小化,仅仅是点击另外一个窗口的话,并不属于进入后台。

对于音频播放应用,Windows允许通过两种方式支持后台运行。一是使用单独的播放进程,最小化的时候挂起主进程但保留播放进程;二是直接使用主进程进行后台播放,但是开发者需要自行进行资源回收,避免后台运行时占用内存过大导致被系统结束。无论是哪一种,在桌面系统中关闭应用窗口都会导致播放停止,而在手机系统中退出应用则不会影响音乐的播放。

对于一些需要在后台执行资源密集任务的应用,例如格式转换、影音处理、文件下载、位置记录等,有一种叫做扩展执行(Extended Execution)的方式可以采用。应用向Windows申请扩展执行之后,可以在进入后台后的一段时间内保持运行。一段时间之后,应用会自动停止运行,这时应用有机会在通知中心中提示用户,而用户只需重新进入应用即可恢复运行。另外,在“设置-系统-电池-应用”的“电池使用情况”中,可以将应用的后台运行权限设为“始终允许在后台运行“,这样的话,扩展执行就不会被强制中止。同样,关闭窗口时扩展执行也会停止。

UWP应用还支持其他的一些后台任务。这些后台任务无论是否打开了应用都可能运行,但也受到“设置-系统-电池”中后台设置的限制。它们通常都只能运行比较短的时间执行一些简单的任务。

留言

有想法?请给我们留言!您的留言不会直接显示在网站内。