我正在构建一个WinRT应用程序,它使用邻近性,并直接使用WiFi进行对等通信。因此,当应用程序终止,然后继续运行时,我需要它重新启动(连接将关闭,没有用户交互就无法重新打开)。问题是,我继承应用程序的Prism MvvmAppBase类正在做一些事情,导致它试图从保存的状态(不存在)恢复,并且应用程序最终显示在最后一个屏幕上,但是没有ViewModel支持它,因此取决于视图,它只会处于没有响应或崩溃的状态。
我正在看这份指南,它说,除非有办法重新开始,但我似乎找不到真正的方法去做。http://msdn.microsoft.com/en-us/library/windows/apps/xx130647.aspx
我一直在App.cs文件中进行黑客攻击,试图让它正常工作。现在,除了统一容器和棱镜引导,以及挂起事件处理程序中对NavigationService.Suspending()的调用之外,NavigationService.Suspending文件中实际上什么都没有。
引导看起来是这样的,但是当应用程序从终止后恢复时,它就不会被调用。
protected override async void OnLaunchApplication(LaunchActivatedEventArgs args)
{
await BootStrapper.Config(_container);
await BootStrapper.RegisterPrismInstances(_container, NavigationService, SessionStateService, FlyoutService);
NavigationService.Navigate("Main", null);
}如果有人曾经处理过这件事,并能为我指出正确的方向,我将非常感激。
发布于 2013-10-21 16:08:24
当RestorableState终止后重新启动Prism WinRT应用程序时, Prism将尝试恢复应用程序状态,框架的导航堆栈和帧的状态将在终止之前恢复(这将导航到最后打开的页面,并尝试恢复视图模型中被标记为属性的任何属性)。
通过查看MvvmAppBase的源代码,您似乎可以尝试防止Prism保存/恢复应用程序状态:
我没有尝试上面列出的任何方法,所以我不知道它们是否会产生任何问题,但它们可能会帮助您作为起点。
https://stackoverflow.com/questions/19459942
复制相似问题