我正在编写一个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做任何不同的事情?
提前致谢
答案 0 :(得分:2)
SuspensionManager管理器可以处理多个页面 - 没有问题。考虑到一点背景,我建议遵循: