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文件,再读写文件的过程中并没出错,但是最终没有写入内容.当试图删除文件时,出现错误 ...
一周排行
  • Storm实战:构建大数据实时计算
    Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书.大型互联网公司大数 ...
  • 1,sed介绍    sed可删除(delete).改变(change).添加(append).插入(insert).合.交换文件中的资料行,或读入其它档的资料到文>件中,也可替换(substuite)它们其中 ...
  • 什么是网站地图?网站地图是指列举了网站结构.栏目和内容等信息的网页,它除了起到引导网站内容的作用,帮助用户快速地找到相应的栏目外同时可以方便搜索引擎蜘蛛对网站页面的抓取,对于搜索引擎优化来说非常重要.网站地图是一个网 ...
  • oracle 临时表空间的增删改查1.查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 ...
  •  BackgroundWorker是基于事件异步模式的一个实现.它具有以下特征:可协调的退出安全的更新窗体控件转发异常到完成事件报告进度是一个控件,可以在visual studio中直接拖拽使用由于Backgroun ...
  • 导出oracle11.2.0.2的服务器的数据时,报"EXP-00003: 未找到段 (0,0) 的存储定义"错误.初步分析是由于数据表是空表导致该问题.Oracle 11G在用EXPORT导出时 ...
  • Hyper-V导出导入详解
    Hyper-V 导出导入.大家在用hyper-V导入导出时,完整导出配置后,再导入的时候没 ...
  • 来了半个月了稍微吐槽下.1.先说工作 :限于个人的沟通能力,每天基本上也就是导师跟我说说业务,说说代码 ,这点令我很压抑啊.每天到公司又种说不出的压抑啊.在公司,同事吃饭看代码讨论代码,打饭讨论代码都是很   常见的 ...
  • 使用免费tk域名
    ①注册一个tk域名 ②在DNSPOD将添加域名解析 ③将DNSPOD的记录值添加到tk的域 ...
  •      文章是去年在公司内部搭建的cloudstack 高级区域配置文档,包括软硬件介绍和日常操作,不包括节点和管理节点的安装 附件中为安装文档1 背景 41.1 数据流量 41.2 高级网络基本网络比较 42 物 ...