我正在写一个Windows Phone 7应用程序。我有“致命的异常”处理代码,我确信应用程序完全被破坏,并且没有任何意义。 (我希望我永远不会到这里...)。由于除了退出之外,我的应用还可以做其他事情,所以我希望用户能够关闭应用。有没有办法以编程方式退出我的应用程序? (Windows Phone 7)
但我注意到Windows Phone 7的Silverlight 4 SDK中没有System.Environment.Exit()
。是否有另一种通过编程方式退出应用程序的方法?
我正在写一个Windows Phone 7应用程序。我有“致命的异常”处理代码,我确信应用程序完全被破坏,并且没有任何意义。 (我希望我永远不会到这里...)。由于除了退出之外,我的应用还可以做其他事情,所以我希望用户能够关闭应用。有没有办法以编程方式退出我的应用程序? (Windows Phone 7)
但我注意到Windows Phone 7的Silverlight 4 SDK中没有System.Environment.Exit()
。是否有另一种通过编程方式退出应用程序的方法?
应用证书REQT:
5.1.2应用程序终止
的 应用程序必须处理异常 由.NET Framework提出,而不是 终止不料。在 认证过程中,将监控应用程序 的意外情况 终止。 意外终止的应用程序失败 认证。处理 例外情况时,应用程序必须提供用户友好的错误消息。 您可能会提供与 应用程序的上下文相关的 消息。 应用程序必须 继续运行并保持响应 到用户输入异常处理后为 。显示 通用或无用的错误消息 的应用程序将无法通过认证。
我建议您提供任何您感觉与用户相关的信息,然后将设备导航留给用户管理。
确认已知的解决方案提供“退出”按钮,目前我没有看到从WP7应用程序实现“退出”的强制性理由。
该平台完全能够管理应用程序的关闭。越多的应用程序不提供退出,更快的用户将习惯于不考虑应用程序管理,并让平台管理它。容易 - - 使用开始,背部等
如果用户希望从当前应用程序的去做些别的事情很快
用户将只是导航他们的设备他们只投中开始。
.Exit(),虽然可用于xna,但实际上不再需要。在CTP期间有一个证书要求,游戏必须提供退出按钮。现在这消失了。
非游戏应用程序从来没有需要实现这一点。
这个话题的讨论越多(它在这个区块的运行真的很好),对我来说指标越多,就不需要编码出口。
我没有阅读过这部分规范,谢谢指出。我猜想要做的事情是明确指出,应用程序无法继续,并通过点击“开始”硬件按钮来通知用户退出。谢谢 – will 2010-10-25 17:23:18
我在市场上有一个应用程序抛出一个异常退出,它从来没有被标记为一个问题。两个注意事项:1)它明确标记为ExitException,所以在抛出时,它的意图很明显,2)仅在一种情况下使用,当用户试图退出应用程序并击中我们的自定义飞溅时屏幕(这是一个页面,而不是一个图像),开始了一个动画,否则不会让任何人通过。 – 2011-03-29 08:55:45
我刚刚从应用程序拒绝了应用程序,因为它通过抛出ExitException异常退出。尽管在这些情况下具体说明应用程序将退出,但在设置屏幕上的一个选项可禁用此行为,我的测试版测试人员指出退出的评论是可取的且有用的,并且用户被提供了查看帮助的机会第一次打开应用程序。如果我重新提交,但是还没有发言,我已经回复了拒绝接受技术例外的可能性。 – Yort 2012-01-27 00:10:27
当您尝试以编程方式退出WP7应用程序时,需要记住应用程序认证要求。 Peter Torr has a blog post可以帮助你的方法。 Paul Jenkins最近在市场中遇到MahTweets应用程序的问题,他blogged about it here。
HTH, indyfromoz
这有帮助,谢谢你的链接。 – will 2010-10-25 17:21:08
这里是我如何做到这一点:
void Exit()
{
while (NavigationService.BackStack.Any())
NavigationService.RemoveBackEntry();
base.OnBackKeyPress(new CancelEventArgs());
}
不幸的是,这并不工作:(
你应该使用'NavigationService.GoBack()'而不是假回退键按 – onmyway133 2012-11-09 10:58:05
你试过吗?错误。 – 2012-11-14 18:54:35
尝试在循环之前移动“NavigationService.GoBack()”,而不是在之后。 – 2013-03-08 11:10:56
App.Current.MainWindow.Close()
对于Windows Phone 8的,只需调用 App.Current.Terminate();
我想你可以让你的应用程序抛出一个未处理的异常,在这一点上,Windows Phone将自动终止你的应用程序
至于认证要求,你可以要求例外。这种方法一直为我工作。
浏览到您的解决方案资源管理器App.xaml.cs
和 添加静态方法将App
类
public static void Exit()
{
App.Current.Terminate();
}
,这样就可以从你的应用程序的任何地方调用它,如下
App.Exit();
App.Current.Terminate();
对于Windows Phone 8.1 Silverlight应用程序
possible le复制[Windows Phone 7关闭应用程序](http://stackoverflow.com/questions/3659195/windows-phone-7-close-application) – 2010-10-22 08:12:02
也是这么想的,但是看起来问题似乎是关于如何在应用程序中处理不可恢复的问题。证书请求建议应该处理异常,并且应用程序留在用户控制导航的位置。 – 2010-10-26 00:09:31
请阅读此:http://blog.jerrynixon.com/2011/11/mango-sample-exit-application.html – 2012-02-20 19:40:17