我是UWP的新手,我现在面临的一个问题是,我希望在进入暂停或终止状态之前继续应用程序正在进行的操作。
我已经阅读了有关扩展执行和后台任务的内容,但据我所知,对于扩展执行,你只有30秒才能终止它,或者在进入它之前可以撤销它。
对于后台任务我应该为它做另一个项目(Windows运行时组件),我必须在appxmanifest的声明中添加一个条目。听起来后台任务是实现它的唯一可行方法,但是如果应用程序进入这些状态以及恢复后应该发生什么,如何将操作(Action,Func或任务或其他)移动到后台任务?!
有经验的人有什么想法吗?
答案 0 :(得分:1)
Windows 10通用Windows平台(UWP)应用生命周期
在Windows 8之前,应用程序的生命周期很短。 Win32和.NET应用程序正在运行或未运行。现在,UWP应用程序中有三个应用程序模型在前台运行,在后台运行和暂停状态。您可以通过此official document了解更多详细信息。
延期执行
有些应用可能需要在最小化时继续运行而不是暂停。如果应用程序需要继续运行,则操作系统可以使其保持运行,或者它可以请求继续运行。
对于这种情况,您需要使用ExtendedExecution
来实现。 ExtendedExecution
支持启动长时间运行以推迟暂停状态。并且有一些document和code sample引入了此功能。
后台任务
对于Background Task
,它会在您的应用暂停或未投放时提供相应功能。您还可以将后台任务用于实时通信应用程序,如VOIP,邮件和IM。但是,它会在特定条件下触发。有关详情,请参阅this。
您已经在案例中提到过程Background Task
,而另一个Background Task
(in process)也可以在UWP应用中使用。它比进程外后台任务更容易实现。