1

我知道在桌面应用程序中,我们有一些东西Form_Closing非常适合在应用程序关闭之前做一些事情,但是我需要在 Metro 应用程序关闭(被用户或系统关闭)之前做一些事情,我无法得到这个工作。

唯一似乎甚至远相关的事件是App_SuspendingpageRoot_Unloaded事件。

我的问题是,如果我将代码(任何代码)放在 Unloaded 事件中,它永远不会被调用,这让我相信 Unloaded 事件永远不会被触发。

我还没有尝试使用 Suspending 事件,因为我需要在应用程序实际关闭或即将关闭时执行此工作,而不仅仅是暂停。

有任何想法吗?

4

2 回答 2

3

在暂停的那一刻,Closing 和 Suspending Metro App 没有区别,所以每次都必须在 OnSuspending 覆盖中保存状态。但是在重新激活后,您可以看到您的应用程序发生了什么(OnLaunched(例如,在这里您可以看到值 ClosedByUser))。 是一篇关于 WinRT LifeCycle 的不错的文章。

于 2013-01-17T10:28:38.700 回答
1

您可以覆盖 OnNavigatedFrom 方法,该方法将在页面被导航离开时调用。

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page.onnavigatedfrom.aspx

我认为没有任何明确要求终止应用程序(接受检查 app.xaml.cs 中的先前状态)

于 2013-01-17T10:20:38.930 回答