if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
// Restore the saved session state only when appropriate
await SuspensionManager.RestoreAsync();
}
所有这些工作的结果是您可以免费获得很多东西。如果Contoso Cookbook被挂起并终止,当再次被启动时,它将自动转至您最后查看的页面。您可以通过按F5从Visual Studio运行应用程序,选择某个食谱并从此处所示的Debug Location(调试位置)工具栏选择Suspend and shutdown(挂起并关闭)以对其进行测试。
在以这种方式关闭应用程序后按F5以重新启动应用程序。以上操作对由操作系统终止并重新启动应用程序的过程进行了模拟。得益于Visual Studio创建的代码,应用程序将返回您关闭应用程序时查看的食谱。因为导航历史也被恢复,您甚至可以使用返回按钮回溯您在应用中的步骤。
练习2:提示
我们强烈建议您熟悉Visual Studio中的Suspend(挂起), Resume(继续), 和Suspend and shutdown(挂起并关闭)命令。这是调试应用程序进程生命周期管理状态的很好的方法。如果您仅仅通过启动应用程序并切换任务以使应用程序进入或退出前台的方法调试进程生命周期管理,大多数时候都能得到预想的结果。但是对于终止您将不能看到正确的行为。您将看到应用程序停留在内存的时间比预想的要长,因为Visual Studio调试器进行了一些处理以保持与应用程序的连接。对终止事件请使用Visual Studio中的Suspend and shutdown 命令。
决定进程生命周期管理需要保存的内容同样十分重要。在下一个实验中我们将讨论设置(或称为用户首选项)并且您将注意到当用户输入或修改设置时我们将立刻保存它们。为进程生命周期管理保存的状态应该是一个帮助您恢复用户至应用程序挂起前位置的“瞬时”状态。其他任何需要保存的内容(例如设置或缓存)应该根据需要越早保存越好。这种做法将减少在进程生命周期管理的挂起事件中您需要完成的工作量。