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

时间:2010-10-22 02:40:34

标签: silverlight-4.0 windows-phone-7

我正在写一个Windows Phone 7应用程序。我有“致命异常”处理代码,我知道该应用程序完全被破坏,继续没有意义。 (我希望我永远不会来这里......)由于我的应用程序除了退出之外别无其他功能,我希望用户能够关闭应用程序。

但我注意到Silverlight 4 SDK for Windows Phone 7中没有System.Environment.Exit()。是否有其他方式可以通过编程方式退出应用程序?

9 个答案:

答案 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.csApp

添加静态方法
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()