Silverlight 4.0 有没有办法以编程方式退出我的应用程序?(Windows Phone 7)

Silverlight 4.0 有没有办法以编程方式退出我的应用程序?(Windows Phone 7),silverlight-4.0,windows-phone-7,Silverlight 4.0,Windows Phone 7,我正在编写一个WindowsPhone7应用程序。我有“致命异常”处理代码,我确信应用程序完全崩溃了,继续下去没有意义。(我希望我永远不会到这里…)。因为我的应用程序除了退出外没有其他功能,所以我希望用户能够关闭应用程序 但是我注意到在WindowsPhone7的Silverlight4SDK中没有System.Environment.Exit()。是否有其他方法以编程方式退出应用程序?一种“不那么难看”(显然是唯一)的退出方法是。糟糕。当您试图以编程方式退出WP7应用程序时,需要记住应用程序认

我正在编写一个WindowsPhone7应用程序。我有“致命异常”处理代码,我确信应用程序完全崩溃了,继续下去没有意义。(我希望我永远不会到这里…)。因为我的应用程序除了退出外没有其他功能,所以我希望用户能够关闭应用程序


但是我注意到在WindowsPhone7的Silverlight4SDK中没有
System.Environment.Exit()
。是否有其他方法以编程方式退出应用程序?

一种“不那么难看”(显然是唯一)的退出方法是。糟糕。

当您试图以编程方式退出WP7应用程序时,需要记住应用程序认证要求。这有助于你的方法。Paul Jenkins最近在市场上遇到了MahTweets应用程序的问题,他说

嗯,, indyfromoz应用程序证书要求:

5.1.2申请终止

应用程序必须处理异常 由.NET Framework提出,而不是 意外终止。在 认证流程、应用程序 监控是否存在意外情况 终止。一个应用程序 意外终止失败 证明处理时 例外情况下,应用程序必须 提供用户友好的错误消息。 您可以呈现一条消息,该消息是 与《公约》的背景有关 应用程序应用程序必须 继续运行并保持响应 在异常被删除后,将其添加到用户输入 已处理。显示 一般性或无帮助的错误消息 将无法通过认证

我建议您提供您认为与用户相关的任何信息,然后将设备导航留给用户根据此进行管理

我承认已知的提供“退出”按钮的解决方案,但目前我看不到从WP7应用程序实现“退出”的有力理由

该平台完全能够管理应用程序的关闭。越多的应用程序不提供退出,用户就越快习惯于不考虑应用程序的内部管理,并让平台来管理它

用户只需使用start、back等导航设备

如果用户想退出当前的应用程序去做一些其他的快速-简单-他们只需点击开始

.Exit()虽然可用于xna,但实际上也不再需要。CTP期间有一项证书要求,游戏必须提供一个退出按钮。这已经过去了

非游戏应用程序从未需要实现这一点

这个话题讨论得越多(而且它确实已经在整个街区得到了很好的运行),我就越觉得没有必要编写退出代码。

我是这样做的:

void Exit()
{
    while (NavigationService.BackStack.Any())
        NavigationService.RemoveBackEntry();
    base.OnBackKeyPress(new CancelEventArgs());
}

不幸的是,这不起作用:(

对于Windows Phone 8,只需拨打
App.Current.Terminate();

我想你可以让你的应用程序抛出一个未经处理的异常,这时Windows Phone会自动终止你的应用程序


至于认证要求,您可以请求例外。此方法一直适用于我。

在解决方案资源管理器中导航到
App.xaml.cs
,然后 将静态方法添加到
App

public static void Exit()
{
      App.Current.Terminate();
}
这样,您就可以在应用程序的任何位置调用它,如下所示

App.Exit();

对于Windows Phone 8.1 Silverlight应用程序

一开始可能也有类似的想法,但阅读时,问题似乎是关于如何处理应用程序中不可恢复的问题。证书要求建议应处理异常,并将应用程序保留在适当位置,以便用户控制导航。请阅读以下内容:这肯定有效,但是k非常讨厌。;>谢谢你指出。我还没有读过规范的这一部分,谢谢你指出。我想应该做的是清楚地声明应用程序无法继续,并通过点击“开始硬件”按钮来提示用户退出。谢谢我在市场上有一个应用程序抛出异常退出,而且从来没有出现过标记为问题。两个警告:1)它被清楚地标记为ExitException,因此当抛出时,其意图显而易见;2)它仅在一种情况下使用,即当用户试图退出应用程序并点击我们的自定义启动屏幕(这是一个页面,而不是图像)时,它启动了一个动画,否则不会让任何人通过。我刚刚有一个应用被拒绝认证,因为它通过抛出cutom ExitException异常退出。尽管有帮助明确说明在这些情况下应用程序将退出,设置屏幕上有一个选项用于禁用该行为,我的beta测试人员的评论表明退出是可取和有用的,并且用户有机会在应用程序第一次打开时查看帮助。我已经回复了拒绝请求,询问如果我重新提交,是否有可能收到技术异常,但尚未回复word。我为我的应用程序申请了技术异常,并获得了批准。我必须说明这种行为是可取的,可以在设置中关闭,并在帮助中解释。在应用程序第一次退出之前,我还加入了一个一次性提示,解释了该行为以及如何关闭它,以便让用户清楚发生了什么。我想微软一定对此很满意。你应该使用
NavigationService.GoBack()
而不是假按键
App.Exit();
App.Current.Terminate();