【发布时间】:2013-04-16 14:09:21
【问题描述】:
我编写了一个 Windows 8 商店应用程序 (XAML/C#),并在 Microsoft Surface 上运行。该应用程序基本上是一个没有任何保存按钮的数据输入应用程序。在页面之间跳转或应用程序暂停时会自动执行保存。
但是我似乎无法捕捉到的一个场景是用户关闭应用程序时(当用户从屏幕的顶部滑动到底部时)。
所以目前我订阅了 App.Current.Suspending 并在此处调用 save:
App.Current.Suspending += Current_Suspending;
void Current_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
Save();
}
我还重写了 SaveState 方法并在此处调用 Save:
protected override void SaveState(Dictionary<string, object> pageState)
{
Save();
base.SaveState(pageState);
}
但是当应用程序关闭时,这些方法都不会被调用。
有人知道应用关闭时触发的事件吗?
谢谢
【问题讨论】:
-
您在谈论应用程序被暂停时使用“关闭”一词有点令人困惑。你能确定 Suspending 事件是否真的发生,如果没有,那么你没有以正确的方式连接到事件中。似乎这篇文章可能会帮助您以正确的方式做到这一点:msdn.microsoft.com/en-us/library/windows/apps/hh986968.aspx
-
应用程序暂停时会触发暂停事件,但关闭时不会触发。当我说关闭时,我的意思是用户正在从上到下滑动屏幕(或按 Alt-F4)
-
您的暂停事件仅在应用程序暂停而不是关闭时发生。您需要通过处理应用程序关闭时发生的事件来处理实际永久关闭的应用程序。
-
我调查了这个问题,没有。
标签: c# windows-8 windows-store-apps winrt-xaml