0

可能重复:
以编程方式关闭 WP7 应用程序?

我想向我的用户展示他需要 Internet 连接才能使用 MessageBox 的应用程序。当他单击确定时,我喜欢在不使用 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 服务

谢谢

4

3 回答 3

1

正如@willmel 所提到的,您的用户体验与Windows Phone 不一致。Microsoft 的 Peter Torr 有一篇很棒的博客文章,虽然有点老,但关于为什么这是一个坏主意(从用户体验的角度来看)以及如何设计你的界面以便不必以编程方式退出应用程序。

于 2012-05-27T23:18:12.700 回答
0

应用程序不能以编程方式关闭,也不会通过认证。您需要重新考虑您的用户体验。

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

此外,keep in MessageBoxResult.None,这是按下硬件后退按钮关闭对话框的结果。(看起来您并没有在代码中处理它)

于 2012-05-27T18:09:46.800 回答
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
    }
}
于 2012-05-27T20:23:05.937 回答