我已经编写了一个windows 8商店应用程序(XAML/C#),我已经在微软的表面上运行了这个应用程序。该应用程序基本上是一个数据输入应用程序,没有任何保存按钮。保存在页间跳转或应用程序挂起时自动执行。
然而,我似乎无法捕捉到的一种感觉是,当用户关闭应用程序时(当用户从屏幕的顶部到底部滑动时)。
因此,目前我订阅了App.Current.Suspending,并在这里调用了保存:
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);
}但是,当应用程序关闭时,会调用这些方法的niether。
有谁知道在应用程序关闭时会被解雇的事件吗?
谢谢
发布于 2013-04-23 11:35:41
http://msdn.microsoft.com/en-US/library/windows/apps/xaml/hh465115.aspx
在底部包含以下说明:
有关使用Visual : Visual进行调试的说明防止Windows挂起附加到调试器的应用程序。这是为了允许用户在应用程序运行时查看Visual调试UI。调试应用程序时,可以使用Visual发送挂起事件。确保显示了“调试位置”工具栏,然后单击挂起图标。
发布于 2013-04-23 13:33:13
我不想简单地指出Windows应用程序生命周期上的文档,但是文档非常清楚。当应用程序关闭时,不存在通过按ALT-F4 Windows程序来处理的特殊事件,Windows Store应用程序应该只被挂起或根本不运行。这意味着您应该经常处理保存用户数据的问题,并/或提供一种保存此类数据的方法。
没有特殊事件表明用户已经关闭了应用程序。当一个应用程序被用户关闭后,它就会被挂起并终止,在大约10秒内进入NotRunning状态。如果一个应用程序已经注册了一个事件处理程序,那么当应用程序被挂起时,它就会被调用。可以使用此事件处理程序将相关应用程序和用户数据保存到持久存储中。 当应用程序被用户关闭后被激活时,您应该决定它的行为方式。无论应用程序是被Windows终止还是被用户终止,这可能对你没有任何影响。如果您的应用程序在用户关闭时需要执行与Windows关闭时不同的操作,激活事件处理程序可以确定应用程序是由用户终止还是由Windows终止。请参阅ApplicationExecutionState枚举的文档中对ApplicationExecutionState和终止状态的描述。 除非绝对必要,否则应用程序不应该以编程方式关闭自己。例如,如果应用程序检测到内存泄漏,它可以关闭自己以确保用户个人数据的安全性。当您以编程方式关闭应用程序时,Windows将其视为应用程序崩溃。
来源
https://stackoverflow.com/questions/16168030
复制相似问题