WP7 Dev 101 【6】 如何退出你的程序?

转载 2011年06月29日 08:40:00

WP7 Dev 101 【6】 如何退出你的程序?

作者:
Breakstring
分类:
开发技术
发表于2010-10-22
  

或许你会注意到,在Silverlight for Windows Phone程序中,并没有之前的类似于“App.Exit()”之类的函数用来让你退出程序。这是怎么回事儿呢?

很简单,在Windows Phone 7中系统要求配备了硬件的“Back”键,该键用于在程序中导航(返回)到上一个页面(屏幕)或者应用程序。当菜单、对话框、搜索框、虚拟键盘等打开时,点击它则关闭菜单、对话框、搜索框和虚拟键盘等。

当应用程序停留在该程序的第一个界面的时候,如果按下返回键,则该程序会自动关闭并回到打开该程序的上一个界面。由于该动作是系统默认用来关闭程序的方法,所以并不需要你在代码中强行退出该程序。所以,微软并没有留下退出程序的函数供你调用。

如果。。。嗯,我是说如果你非要在代码中关闭程序呢?也不是没办法。

第一种办法, 调用XNA中的退出方法,为了节约系统资源,XNA中提供了退出游戏的方法

  1. 添加对Microsoft.Xna.Framework.Game的引用;
  2. 调用Game.Exit()来退出程序。

但是请注意,不要使用该方法 。因为该方法违反了微软的应用程序验证的规范,将会导致你的程序无法提交到Marketplace中去。

第二种方法, 抛出自定义的Quit异常来退出程序

在App.xaml.cs文件中的App类添加如下代码:

Code Snippet
  1. private class QuitException : Exception { }
  2. public static void Quit()
  3. {
  4.     throw new QuitException ();
  5. }

在App类的Application_UnhandledException方法中添加代码,使得它看起来如下:

 

Code Snippet
  1. // Code to execute on Unhandled Exceptions
  2. private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
  3. {
  4.     if (e.ExceptionObject is QuitException )
  5.         return ;
  6.  
  7.     if (System.Diagnostics.Debugger .IsAttached)
  8.     {
  9.         // An unhandled exception has occurred; break into the debugger
  10.         System.Diagnostics.Debugger .Break();
  11.     }
  12. }

然后确保App.xmal中具有设定了UnhandledException的处理:

Code Snippet
  1. UnhandledException ="Application_UnhandledException"

好了,最后只需要在你想要退出程序的地方调用”App.Quit()”方法就可以退出程序了。

这节内容结束。更多101系列文章参见WP7 Dev 101索引

WP7 Dev 101 【5】 应用程序的能力

WP7 Dev 101 【5】 应用程序的能力作者: Breakstring分类: 开发技术发表于2010-10-21 Capability,即能力。Windows Phone ...

WP7 Dev 101 【3】 向Windows Phone 7手机部署应用程序

WP7 Dev 101 【3】 向Windows Phone 7手机部署应用程序作者:Breakstring分类:开发技术发表于2010-10-16  我们都知道Windows Phone 7上所有的...

WP7 ------ 如何退出你的程序?

或许你会注意到,在Silverlight for Windows Phone程序中,并没有之前的类似于“App.Exit()”之类的函数用来让你退出程序。这是怎么回事儿呢? 很简单,在Windo...

WP7 如何退出你的程序?

转载地址:http://www.wpmind.com/dev/2010/10/22/wp7-dev-101-6.html 或许你会注意到,在Silverlight for Windo...

WP7应用程序开发(食物相克大全)

  • 2013年07月20日 14:10
  • 2.95MB
  • 下载

VS2010 wp7智能手机程序开发包

  • 2010年12月22日 10:58
  • 3.21MB
  • 下载

<WP7>(三)手把手教你写天气预报程序:运用WebClient获取天气和json数据解析

上一节我们练习了UserControl,这次我们就要把UserControl运用到实际的布局上面来。           首先,把MainPage中的原来的测试UserControl的代码删除,在C...

<WP7>(六)手把手教你写天气预报程序:使用Isolatedstorage保存设置

上一节完成了SetPage的布局和数据绑定。这一节就要做设置页面和主页面的交互了。 我们在主页面点击设置按钮的时候,是不是应该给设置页面传一个参数?比如城市名称?还有在设置页面ListPicker应...

wp7在程序中直接开启摄像头(非选择器)

很久没有做wp7开发了,最近看到微信在程序中打开摄像头进行二维码,扫描忽然性起,遍做了下研究,然后发现原来是用到了using Microsoft.Devices;命名空间下的 PhotoCamera ...

创建使用本地数据库的WP7应用程序

wp7支持本地数据库了,如下是创建使用本地数据库应用程序的基本方法: 第一步:构建数据上下文 添加引用:System.Data.Linq,并在程序中要用到的地方添加如下代码:using Sys...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WP7 Dev 101 【6】 如何退出你的程序?
举报原因:
原因补充:

(最多只允许输入30个字)