如何在不退回的情况下退出Windows Phone App

时间:2012-05-27 17:16:45

标签: windows-phone-7 exit

  

可能重复:
  Close a WP7 application programatically?

我想向我的用户显示他需要使用MessageBox为应用程序建立Internet连接。当他点击OK我想退出应用程序而不使用BackButton 这是代码

try
        {
            response = (HttpWebResponse)request.EndGetResponse(asyncResult);
        }
        catch (Exception e)
        {

            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                MessageBoxResult m = MessageBox.Show("Потребна е Интернет конекција");
               if (m == MessageBoxResult.OK)
               {
                   while (NavigationService.BackStack.Any())
                      NavigationService.RemoveBackEntry();
                    //base.OnBackKeyPress(new System.ComponentModel.CancelEventArgs());
                   NavigationService.GoBack();
                }



            });


        }

但是,应用程序未退出正在尝试连接到Web服务

由于

3 个答案:

答案 0 :(得分:1)

如@willmel所述,您的用户体验与Windows Phone不一致。微软的Peter Torr有一个很好的,如果有点老,blog post为什么这是一个坏主意(从用户体验的角度来看)以及如何设计你的接口,这样就不必以编程方式退出应用程序。

答案 1 :(得分:0)

应用无法以编程方式关闭,也无法通过认证。您需要重新考虑用户体验。

例如,您可以提示相同的消息,并禁用应用程序的所有控件,以便用户通过后退按钮自行离开应用程序。

此外,请保持MessageBoxResult.None,这是按下硬件后退按钮以关闭对话框的结果。 (它看起来不像你在代码中处理它)

答案 2 :(得分:0)

我不建议您依靠捕获错误来解决您想要做的事情。你会有很多误报。手机有一个API,用于确定网络是否可用。在MainPage.xaml.cs中执行以下操作:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    if (DeviceNetworkInformation.IsNetworkAvailable == false)
    {
        MessageBox.Show("No network! Try again later.");
    }
    else
    {
        // Logic that would happen if they had connection, maybe you show controls 
        // here that might not be displayed w/o a connection
    }
}