WindowsStoreApp中挂起时,程序奔溃的问题

昨天在开发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

更多相关文章
  • 1.保存到Applicaion Data配置信息中: 保存: private void testTB_TextChanged(object sender, TextChangedEventArgs e) { ApplicationDataContainer localSettings = Appli ...
  • 按照网上的教程编译成功,当时运行时老是奔溃(不弹出任何提示,窗口变灰色).遂更新了ATI的显卡驱动果然可以运行了,哈哈http://support.amd.com/en-us/download/desktop/legacy?product=legacy2&os=Windows%207%20- ...
  • 同Java..NET实现的应用程序类似,Javascript编写的应用程序也面临一个同样的问题:源代码的保护.尽管对大多数Javascript应用公开源代码不算是很严重的问题,但是对于某些开发者来说,特别是HTML5.WebGL和其它纯Javascript实现的项目,知识产权保护是不能忽视的,保护好 ...
  • 新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命令输入:lsnrctl start就把那个服务打开了.然后就可以下一步了
  • 服务器远程桌面间歇性不能连接报告一.描述:2014-08-1216:12分左右,web服务器(192.168.0.80)出现间歇性不能连接问题.而处于同一局域网内的其它服务器能通过远程桌面连接.2分钟后,服务器可以通过远程桌面可以连接.通过其它服务器再远程上去看,发现网卡流量很大.查看事件查看器,得 ...
  • 本想连照片一起上传的,这样更直观:很遗憾照片无法上传,但是也无法阻止我发文!!!slave上操作:[[email protected] mysql]# tail slave.err160121 21:44:43 [Note] Event Scheduler: Purging the queue. 0 events ...
  • WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂.     WinExec 两个参数,前一个指定路径,后一个指定显示方式.     Sh ...
  • 使用asp.net 中使用Excel时遇到的问题:1. 访问权限    冲Perforce上用GET Lasted Version的方式获取的源码,都是readonly. 当直接运行程序访问readonly的excel文件,再读写文件的过程中并没出错,但是最终没有写入内容.当试图删除文件时,出现错误 ...
一周排行
  •       exchange 2010英文版的安装前骤及步骤当今的社会发展突飞猛进,每个人一天会收到很多封邮件,包括垃圾邮件也不是小数,企业也是对邮件服务器的要求越来越高.微软在即exchange 2007之后又退出 ...
  • OSPF中路由与LSA的关系:OSPF是基于链路状态的路由协议,路由隐藏在LSA中.我们知道,OSPF有三张表,邻居表,拓扑表(LSDB),路由表.而路由表,是基于LSDB得来的,在LSDB中挑选到达目的地最好的LS ...
  • 由于数据库很大,只恢复几张表既可以使用.恢复方法如下:停止slave复制,stop slave;在主库上导出这三张表,并记录binlog和pos点:mysqldump --single-transaction--ma ...
  • Glances 是前几天网上闲逛的时候发现的一款 "新" 系统监控工具,尽管现在监控工具有很多选择,Glances 还是有些值得关注的,和那些常用的老牌监控工具比起来,比如 top/vmstat/ ...
  • 先上代码: 1 #ifndef SEQLIST_H 2 #define SEQLIST_H 3 4 #include <iostream> 5 6 7 const int MaxLength = 10; ...
  • 本文档解答早期赛门铁克产品管理员可能会遇到的有关 Symantec Endpoint Protection 11.0 产品的特定问题.转载自: http://www.symantec.com/docs/TECH102 ...
  •   昨天公司要求摸底各服务器的CPU.内存.硬盘等情况,我对自己所管理的linux服务器也做了排查,在此梳理一下查看Linux服务器信息常用的命令,做个总结.  一.操作系统:     1.查看linux发行版名称: ...
  • Android框架的产业核心点在哪?看看这个视频也许你能找到答案
  • 一.在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: using System.Text.RegularExpressions;  二.RegEx类常用的方法1.静态Match方法 使用静态Match方法 ...
  • openfiler简单使用
        最近在玩openfiler,感觉这个存储软件还是不错的.我是装在VMware Wo ...