zoukankan      html  css  js  c++  java
  • WP开发笔记——程序的退出方法

      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"
    

      

  • 相关阅读:
    jmeter的插件安装
    linux下性能监控工具nmon的使用
    kafka如何保证不重复消费又不丢失数据_Kafka写入的数据如何保证不丢失?
    Goroutine和Panic
    go 并发有趣现象和要避开的坑
    Go语言宕机恢复(recover)——防止程序崩溃
    invalid character 'è' looking for beginning of value
    golang实现RPC的几种方式
    channl与select
    我要在栈上。不,你应该在堆上
  • 原文地址:https://www.cnblogs.com/chenguangqiao/p/3705973.html
Copyright © 2011-2022 走看看