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文件,再读写文件的过程中并没出错,但是最终没有写入内容.当试图删除文件时,出现错误 ...
一周排行
  • 五、OpenStack安装Nova
    计算服务计算服务是云算机控制器,它是IaaS系统的主要部分,用它来承载和管理云计算系统,主 ...
  • IBMDS存储failover实验
    在前面的文章<详解IBM DS 存储 Failover 的三种模式> 中讲述了 ...
  • 单林多域群集环境中将Exchange2003迁移到Exchange2010系列之四
    本篇文章主要是测试成员位于两个数据中心中的数据库可用性组的高可用性,从上几篇文章了解实验环 ...
  • CCNA面试题(上)什么是三层交换,说说和路由的区别在那里?三层交换机和路由器都可工作在网络的第三层,根据ip地址进行数据包的转发(或交换),原理上没有太大的区别,这两个名词趋向于统一,我们可以认为三层交换机就是一个 ...
  • Ubantu下安装adobeflashplayer插件
    用火狐看视频,要打开Adobe官网下载xxxx,太麻烦. 可以在Terminal下输入: ...
  • MyBatis多对多保存示例——MyBatis学习笔记之十七
    前几天有网友问到MyBatis多对多的问题,不过愧对网友厚爱的是,最近一直忙,直到现在才有 ...
  • 随着电子阅读器的广泛应用,PDF这种文件格式以其阅读方便.成像质量高等优点,越来越被大家所喜好.网络上介绍了很多可以将文档转存为PDF的软件或者方法,例如福晰PDF.Office Word等等,这里要跟大家分享一下, ...
  •  现在流行的JavaEE容器有很多:Tomcat.Resin.JBoss.Glassfish等,我们常用的主要是前三种,那这个java容器性能方面到底谁更稳定,并发能力更强呢?那当属resin了,resin官方发布了 ...
  • Windows2003实用技巧七则 一.跳过磁盘检修等待时间 一旦计算机因意外原因,例如突然停电或者死机的话,那么计算机下次重新启动的话,系统就会花10秒钟左右的时间,来运行磁盘扫描程序,检查磁盘是否有错误出现.要是 ...
  • Winserver服务器-AD字段对照简图