设为首页 加入收藏

TOP

Windows Phone 处理 MessageBox导致的应用异常退出以及使用代码方式退出应用
2014-11-24 02:53:25 来源: 作者: 【 】 浏览:2
Tags:Windows Phone 处理 MessageBox 导致 应用 异常 退出 以及 使用 代码 方式

看到题目可能有些同学觉得这是一个老生常谈的问题了,确实这是一个 known issue 但我发现还是有同学在询问这个问题,所以在这里给大家总结分享一下。


首先第一个问题 MessageBox显示出来以后,如果用户不理会 Message 页面,大概等上10秒钟程序就会自动退出。(这个现象在Debug时不会出现)


先简单分析一下这个问题的原因,首先为什么在Debug的时候应用不会出问题,很简单我们在调试应用的时候很有可能一个断点停留10秒钟以上(一个返回值阻塞主线程),然而应用在非Debug的情况下出现这种现象,SDK会认为你的代码有问题会强制退出。


其实解决这个问题的方法很简单,既然知道这个问题的原因了,使用一个异步方法(线程)来实解决这个问题。


当然肯定有同学会问 在调用MessageBox之前先把 e.Cancel 设置成 True 了那怎么退出应用呢? 这也算是一个老问题了(WP7时代遗留问题),这里我也是总结一下经验,从网上看到的一些方法。


Windows Phone 8 更新 此方法可以直接终结应用。


但是此方法这里不会调用页面的 OnNavigatedFrom 事件 和App中的Application_Closing 事件,所以在调用此方法前要注意保存用户数据。



Windows Phone 7


首先 XNA中的Game.Exit() 不建议使用因为在应用商店审核的时候会遇到问题,导致不能上商店。


目前唯一的靠谱方法就是通过抛异常并且在App文件中的Application_UnhandledException事件中处理它:


网络上抛出异常的方式有两种


1. 自定义的异常


最后使用App.Quit()退出应用。



2. 利用 NavigationService.GoBack();退出应用


同理,在 Application_UnhandledException 中处理一下这个异常。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows store 应用调用 SharePoi.. 下一篇Windows Phone & Windows 8 Push ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: