WP开发笔记——程序的退出方法

Windows Phone 7 应用程序依靠硬件“Back”键实现返回或关闭操作,因此无需提供专门的退出函数。本文介绍了如何利用 XNA 的 Game.Exit() 方法(不推荐)或通过抛出自定义 Quit 异常来实现程序关闭。

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

  很简单,在Windows Phone 7中系统要求配备了硬件的“Back”键,该键用于在程序中导航(返回)到上一个页面(屏幕)或者应用程序。

  当菜单、对话框、搜索框、虚拟键盘等打开时,点击它则关闭菜单、对话框、搜索框和虚拟键盘等。

  当应用程序停留在该程序的第一个界面的时候,如果按下返回键,则该程序会自动关闭并回到打开该程序的上一个界面。

  由于该动作是系统默认用来关闭程序的方法,所以并不需要你在代码中强行退出该程序。所以,微软并没有留下退出程序的函数供你调用。

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

 

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

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

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

 

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

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

private class QuitException : Exception { }
public static void Quit()
{
    throw new QuitException();
}

  在App类的Application_UnhandledException方法中添加代码:

// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e)
{
    if (e.ExceptionObject is QuitException)
    return;
    if (System.Diagnostics.Debugger.IsAttached)
    {
        // An unhandled exception has occurred; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}    

  然后确保App.xmal.cs的构造函数中具有设定了UnhandledException的处理:

UnhandledException+="Application_UnhandledException"

  

转载于:https://www.cnblogs.com/chenguangqiao/p/3705973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值