Windows Store App 中挂起时,程序奔溃的问题

昨天在开发windows phone 8.1程序时,发现程序在挂起的时候,会自动退出。通过调试发现错误信息是

System.Runtime.InteropServices.COMException (0x80004005): Unspecified error

GetNavigationState doesn‘t support serialization of a parameter type which was passed to Frame.Navigate.
   at Windows.UI.Xaml.Controls.Frame.GetNavigationState()
   at TX.WifiSurfing.Common.SuspensionManager.SaveFrameNavigationState(Frame frame)
   at TX.WifiSurfing.Common.SuspensionManager.<SaveAsync>d__0.MoveNext()
System.Collections.ListDictionaryInternal

意思是由于页面导航的参数不支持序列化,程序挂起时保存状态的时候出现了异常:

       /// <summary>
        /// 在将要挂起应用程序执行时调用。    将保存应用程序状态
        /// 将被终止还是恢复的情况下保存应用程序状态,
        /// 并让内存内容保持不变。
        /// </summary>
        private async void OnSuspending(object sender, SuspendingEventArgs e)
        {
            var deferral = e.SuspendingOperation.GetDeferral();
            await SuspensionManager.SaveAsync();
            deferral.Complete();
        }

但是我整个程序并没有在导航的时候传递对象,出现这问题很让我费解。通过查看异常页面的OnNavigatedTo方法,发现当我使用NavigateToPageAction导航的时候,如果Parameter不设置,程序会设置一个默认值,由于我是使用EventTriggerBehavior的Tapped事件触发的,Parameter被设置成了TappedRoutedEventArgs,这是一个不可序列化的对象,所以在挂起时保存状态的时候出现了错误。把它设置成Parameter=“ ”是一个解决方案(注:设置成Parameter=“”和Parameter=“{x:null}”都不可以,还是原来的默认值)。

SuspensionManagerErrorDemo.rar

Windows Store App 中挂起时,程序奔溃的问题

时间: 2024-10-07 09:22:06

Windows Store App 中挂起时,程序奔溃的问题的相关文章

Windows Store App 中使用Scrollviewer实现缩放功能

Windows Store App中可以直接使用Scrollviewer实现缩放功能,基本代码如下: <ScrollViewer Background="Yellow" HorizontalScrollBarVisibility="Visible" MaxZoomFactor="2" MinZoomFactor="0.5" VerticalScrollBarVisibility="Visible" Z

Windows Store App 全球化:运行时响应语言变更

在应用程序运行过程中,系统的语言.像素.对比度等系统设置可能会发生改变,应用程序应根据系统环境的改变及时做出适当的响应.为了解决这样的问题,可以在应用程序中为系统状态更改事件注册事件处理方法,当语言.像素等系统设置信息发生改变时将触发这个事件,并在事件处理方法中根据环境变化做出相应的调整.下面通过一个具体的示例来演示如何在应用程序中注册状态更改事件,并在所添加的事件处理方法中对语言首选项的更改做出响应. 新建一个Windows应用商店的空白应用程序项目,并命名为RuntimeChanges.在项

在桌面程序上(Winform or others)和Metro/Modern 程序(Windows store app)的交互(相互打开,配置读取等)

这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情无法做到,因此额外做了一个.NET桌面引擎来辅助,那么现在就需要让这两个不同环境的程序进行交互. 第一步:在桌面应用引擎中,唤醒商店应用. 根据MSDN解释,这边最简单的办法是使用协议(URI protocol)来解决. 1:打开程序的Package.appxmanifest,在声明中添加协议 名称

Windows Store App 过渡动画

Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发生的变化,不会让用户觉得元素的位置变化过于突然.下面通过一个示例介绍如何为界面中的文本块添加过渡动画. 在一个打开的Windows应用商店项目中新建一个空白页,并命名为TransitionAnimationPage,双击打开此页面的TransitionAnimationPage.xaml文件,在Gr

C#学习(九)之Windows Store App &amp; WP 开发小记(一)

由于课程已经讲述完毕,所以本次学习记录就讨论记录一下我在Windows Store App & WP开发中遇到的一些问题与收获. 一.数据库(Sqlite)的使用 虽然资料很难找,但sqlite在这两个平台的使用还是很简单的. 首先是环境配置阶段: 1.工具->拓展与更新->联机,然后在右上搜索sqlite,之后下载安装下图两个打勾的拓展包,注意要重启VS方才生效. 2.项目->管理NuGet程序包->联机,搜索sqlite,安装下图打勾内容,如果项目多出下图两个文件即安装

在windows右键菜单中加入自己的程序 [转载]

原文链接: http://blog.csdn.net/marklr/article/details/4006356 在windows右键菜单中加入自己的程序 标签: windowsattributes扩展commandshell文档 2009-03-20 08:44 3369人阅读 评论(1) 收藏 举报  分类: BCB(12)  修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!).展开该根键,其下的子键主要有两种:扩展名

windows store app 读写图片

1 using System; 2 using System.Threading.Tasks; 3 using System.Runtime.InteropServices.WindowsRuntime; 4 using Windows.Graphics.Imaging; 5 using Windows.UI.Xaml.Media.Imaging; 6 using Windows.Storage; 7 using Windows.Storage.Pickers; 8 using Windows.

WPF UnhandledException阻止程序奔溃

原文:WPF UnhandledException阻止程序奔溃 WPF程序捕获全局异常,遇到未处理的异常,虽可以捕获,但是不能阻止程序退出. AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); void CurrentDomain_UnhandledException(object sender, UnhandledE

Windows Store App JavaScript 开发:页内导航

页内导航是在一个页面内根据需要加载其他页面的内容,在开发基于JavaScript的Windows应用商店应用时,可以使用WinJS.Navigation.navigate函数传递要加载的页面地址并使用PageControlNavigator控件加载其他页面的内容.WinJS.Navigation.navigate函数以一个包含页面地址的对象为参数,在该函数执行时将触发WinJS.Navigation.onnavigated事件并把页面地址传递给该事件.PageControlNavigator控件