退出(退出)执行

问题描述:

在我的windows phone7(Silverlight)应用程序中,我必须显示一个消息框询问,用户在退出应用程序之前确认(是/否)[在设备上点击按钮]。退出(退出)执行

的问题是我必须使用自定义的消息框(使用弹出),以获得用户的确认,我也没办法让退出应用。(没有找到方法将退出应用程序像dispose() or close())。

,如果我没有使用自定义消息框,在上Device back key press event "OnBackKeyPress"我会使用下面的逻辑,做我的工作

MessageBoxResult res = MessageBox.Show("Do you want to Exit?", "Exit", MessageBoxButton.OKCancel); 

      if (res == MessageBoxResult.OK) 
      { 
       if (NavigationService.CanGoBack) 
       { 
        while (NavigationService.RemoveBackEntry() != null) 
        { 
         NavigationService.RemoveBackEntry(); 
        } 
       } 
      } 
      else 
      { 
       e.Cancel = true; 
      } 

的问题是我需要使用定制的消息框和done这项工作。如果需要实现按钮退出应用程序而不使用设备返回按钮,则会出现同样的问题。

我发现在几个帖子建议抛出异常,并做到这一点。以下是其中一些

http://mobile.dzone.com/articles/windows-phone-mango-sample-3

http://imaginativeuniversal.com/blog/post/2010/08/22/How-to-Quit-a-WP7-Silverlight-Application.aspx

我不认为这是一个很好的做法,也不能确定是否在Windows市场将证明这种方式。希望听到曾经遇到过这个问题的人的想法,以及任何有关实现此目标的建议(终止应用程序)。提前致谢....!!!!

+0

不知道为什么这个匿名投票下来...... !!!!! – JibW 2012-08-16 13:29:08

+0

HI exacerbatedexpert谢谢。是的,我也不喜欢退出申请例外。不是一个好习惯。你有任何想法如何执行从应用程序的“退出”,因为没有方法可用(像处理/关闭)... – JibW 2012-08-16 13:41:47

+0

嗨绕过。事情是这是用户需求。当用户在主页面时,如果他按下后退按钮,我必须显示一个弹出消息,询问是否需要退出。如果“是”应该退出并且“否”不是。 – JibW 2012-08-16 14:00:28

如果你要提交到市场你有一对夫妇因为以下认证要求的问题:

5.2.4.2从应用程序的第一个屏幕按后退按钮必须关闭应用。

5.2.2当用户离开应用程序时,Windows Phone应用程序被操作系统关闭并终止。当应用程序在关闭后启动时,其启动时间必须符合第5.2.1节中的要求 - 启动时间

5.2.3当用户按下“开始”按钮或设备超时导致锁屏来搞。 Windows Phone应用程序也会停用,并调用Launcher或Chooser API。

这是一对夫妇的情况下,你只需不能显示一个消息框。

和技术使用一个例外termniate应用程序是违反:

5.1.2应用程序必须处理由.NET Framework引起的异常,而不是意外关闭。在认证过程中,应用程序会受到意外关闭的监控。意外关闭的应用程序未通过认证。处理异常后,应用程序必须继续运行并保持对用户输入的响应。

作为一名开发人员,您的部分工作是与用户沟通有关不切实际或不合理的要求。

+0

嗨,我试图让用户确认只有当用户在第一个屏幕时按下后退按钮。不在5.2.2和5.2.3下解释的情况下。你的意思是说5.2.4.2要求它在执行之前不能显示消息(只是为了得到确认)? – JibW 2012-08-16 15:39:32

+0

exacerbatedexpert已经非常清楚地解释了它。如果您希望应用程序通过认证,请不要尝试引入此对话框,并让后退按钮和主页按钮按预期退出应用程序。 – Gambit 2012-08-16 16:38:43

+2

WP用户期望有一定的体验。当您改变这种体验,并且手机没有按照他们期望的方式行事时(按回来关闭应用程序),您的用户体验就会降低。我见过的应用程序完全按照您所描述的内容进行操作 - 弹出一个确认信息,我觉得这很痛苦。我反悔,因为我想关闭应用程序,编写该应用程序的开发人员对我产生了不满,并且得到了不太好的评价,因为它不符合标准,造成了负面的体验。现在你明白为什么你应该听取exacerbatedexpert? – 2012-08-17 14:24:07

您可以在自定义消息框关闭后挂钩事件。事件参数将保留关于用户选择的信息。取决于你将决定是否退出应用程序。

+0

嗨kvas,是的,我可以跟踪用户的选择....我正在寻找一个代码(方式)退出应用程序。 – JibW 2012-08-16 13:24:09

对不起,没有办法做到这一点。芒果更新之前,您可以清除后退堆栈,然后以编程方式触发后退按钮。但是从SDK 7.1(wp7.5)开始,我们不能再这样做了。

我的建议是创建一个自定义异常类型ApplicationXExitException并抛出退出应用程序。究其原因,自定义类型是这样,当你从市场上拉你的异常的记录,你就会知道,确实是意外的异常崩溃的应用程序,你的VS异常有意退出该应用程序的人。

+0

喜米兰,在测试中的应用项目,我只是说提到的“Microsoft.Xna.Framework.Game”当我做“新游戏()。退出()”,它正确地从应用程序退出。仍然想知道哪种方式是正确的。是允许添加自定义异常退出APP的市场吗? – JibW 2012-08-21 08:25:05

+1

请点击这里http://social.msdn.microsoft.com/forums/en-us/wpdevelop/thread/d66ff941-215a-4bb9-8364-2c2abdd5ea23/,IT不建议使用该功能。它不会通过认证过程。 – 2012-08-21 09:15:29

+0

嗨,您的意思是,如果实施例外(自定义)退出应用程序,它会在认证过程中被接受? – JibW 2012-08-21 10:28:58