如果 Metro 应用程序被操作系统终止,启动 Metro 应用程序的正确方法是啥?

Posted

技术标签:

【中文标题】如果 Metro 应用程序被操作系统终止,启动 Metro 应用程序的正确方法是啥?【英文标题】:What is the proper way to launch a metro app if it is terminated by the operating system?如果 Metro 应用程序被操作系统终止,启动 Metro 应用程序的正确方法是什么? 【发布时间】:2013-07-24 13:28:40 【问题描述】:

如果应用程序被系统终止,我希望应用程序返回到用户上次使用的任何页面,并让他们从上次中断的地方继续。我遇到的问题是 1. 我的应用有 2 个页面,一个数据页面和一个登录页面,那么如何知道用户最后访问的是哪个页面? 2. 我试图让它从终止状态启动时导航到数据页面:

    if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
            
                rootFrame.Navigate(typeof(Messages), args.Arguments);
            

根据http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx,我应该加载我保存的数据,就好像我正在从暂停状态恢复一样,但是在该页面的 LoadState 方法中,

    if (pageState == null)

从终止状态恢复时检查始终为真。问题是启动时传递的 eventargs 将 NavigationMode 设置为 New,因此将其视为第一次看到该页面。我应该怎么做才能解决这个问题,以便加载保存的数据?

【问题讨论】:

【参考方案1】:

原来你需要使用 SuspensionManager

http://msdn.microsoft.com/en-us/library/windows/apps/hh986968.aspx

兼顾这两个问题。

【讨论】:

以上是关于如果 Metro 应用程序被操作系统终止,启动 Metro 应用程序的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

需要未知模块“1”。如果您确定该模块存在,请尝试重新启动 Metro

当应用程序在颤动中被杀死/终止时,从后台事件启动应用程序

使用 powershell 启动 Metro 风格的应用程序

csharp C#中启动Metro应用

可以在“Metro”环境和桌面环境中启动应用程序吗? - 视窗 8/8.1

如果应用程序终止后从通知正文启动应用程序,则打开弹出窗口