当前位置: 移动技术网 > IT编程>移动开发>WP > WP7------如何退出你的程序?

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

2018年09月30日  | 移动技术网IT编程  | 我要评论

cwebgame,韩国情爱电影,建湖天气

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

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

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

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

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

添加对microsoft.xna.framework.game的引用;
调用game.exit()来退出程序。
但是请注意,不要使用该方法。因为该方法违反了微软的应用程序验证的规范,将会导致你的程序无法提交到marketplace中去。

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

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

code snippet
private class quitexception : exception { }
public static void quit()
{
throw new quitexception();
}


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


code snippet
// 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的处理:

code snippet
unhandledexception+="application_unhandledexception"


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

 


摘自 xiechengfa的专栏

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网