我正在编写一个 Windows 8 XAML/C# 应用程序,但会话管理器有点问题。
在我的 App.xaml.cs 中,我的 OnSuspending 方法如下所示:
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
await SuspensionManager.SaveAsync();
deferral.Complete();
}
我已经在 App.xaml.cs 的 OnLaunched 方法中使用 SuspensionManager 注册了我的 rootFrame:
SuspensionManager.RegisterFrame(rootFrame, "AppFrame");
因此,在我的应用程序的第一页中,我重写了 SaveState 方法。它看起来像这样:
protected override void SaveState(Dictionary<string, object> pageState)
{
Save(true);
base.SaveState(pageState);
}
当应用程序被挂起时,这个方法被调用并且一切正常。
我有一个与第一页相同的 SaveState 方法的第二页(如上所述)。
当我从第一页导航到第二页并暂停应用程序时,没有调用任何 SaveState 方法并且应用程序崩溃并出现以下错误:
SuspensionManager 失败:未指定的错误
杰出的!!里面信息不多!!
那么,我需要对具有多个页面的 SuspensionManager 做任何不同的事情吗?
提前致谢