我正在写一个Windows Phone 7应用程序。我有“致命异常”处理代码,我知道该应用程序完全被破坏,继续没有意义。 (我希望我永远不会来这里......)由于我的应用程序除了退出之外别无其他功能,我希望用户能够关闭应用程序。
但我注意到Silverlight 4 SDK for Windows Phone 7中没有System.Environment.Exit()
。是否有其他方式可以通过编程方式退出应用程序?
答案 0 :(得分:9)
App Cert Reqt:
5.1.2申请终止
在 应用必须处理异常 由.NET Framework引发而不是 意外终止。在此期间 认证过程,申请 监控意外 终止。一个应用程序 终止意外失败 认证。处理时 例外,应用程序必须 提供用户友好的错误消息。 您可以提供一条消息 与上下文相关 应用。 申请必须 继续运行并保持响应 异常后的用户输入 处理。显示的应用程序 通用或无用的错误消息 将失败认证。
我建议您提供与用户相关的任何信息,然后将设备导航留给用户进行管理。
承认提供“退出”按钮的已知解决方案,目前我没有看到从WP7应用程序实现“退出”的令人信服的理由。
该平台完全能够管理应用程序的关闭。越多的应用程序不提供退出,更快的用户将习惯于不考虑应用程序内容,并让平台管理它。
用户只需使用开始,返回等方式导航设备
如果用户想要从当前的应用程序中快速做其他事情 - 很简单 - 他们只是点击开始。
.Exit(),虽然可用于xna,但实际上也不再需要了。在CTP期间有一项证书要求,即游戏必须提供退出按钮。现在已经不见了。
非游戏应用程序从未需要实现此功能。
本主题讨论的内容越多(并且实际上已经给出了很好的解决方案),对我的指标越多表明不需要编写退出代码。
答案 1 :(得分:4)
对于Windows Phone 8,只需致电 App.Current.Terminate();
答案 2 :(得分:4)
导航到解决方案资源管理器中的App.xaml.cs
向App
类
public static void Exit()
{
App.Current.Terminate();
}
以便您可以在应用程序的任何位置调用它,如下所示
App.Exit();
答案 3 :(得分:3)
“不那么丑陋”(显然只是)退出的方式是outlined here。呸。
答案 4 :(得分:2)
我是这样做的:
void Exit()
{
while (NavigationService.BackStack.Any())
NavigationService.RemoveBackEntry();
base.OnBackKeyPress(new CancelEventArgs());
}
不幸的是,这不起作用:(
答案 5 :(得分:0)
当您尝试以编程方式退出WP7应用程序时,您需要牢记应用程序认证要求。 Peter Torr has a blog post可以帮助你的方法。 Paul Jenkins最近在市场上遇到了MahTweets应用程序的问题,他blogged about it here。
HTH, indyfromoz
答案 6 :(得分:0)
我想您可以让您的应用程序抛出未处理的异常,此时Windows Phone将自动终止您的应用程序。
至于认证要求,您可以要求例外。这种方法一直对我有用。
答案 7 :(得分:0)
App.Current.Terminate();
适用于Windows Phone 8.1 Silverlight应用
答案 8 :(得分:-1)
App.Current.MainWindow.Close()