我在游戏中有一个中间的“正在加载”页面:我将其发送到那里,并且在加载非常繁琐的游戏页面时会显示“正在加载...”文本:

private void OnLoaded(object sender, RoutedEventArgs e)
{
    Dispatcher.BeginInvoke(() =>
        {
            try
            {
                NavigationService.Navigate(new Uri("/GamePage.xaml", UriKind.Relative));
                NavigationService.RemoveBackEntry();
            }
            catch (InvalidOperationException)
            {
            }
        });
}


然后,当您单击“后退”按钮时,您将转到主页,而不是返回到加载屏幕。页面上没有其他逻辑。

但是,我刚收到的商店提交被拒绝:显然,在Samsung Focus和Odyssey上,加载页面的导航条目未删除,并且当用户单击“后退”按钮时,用户被发送回加载页面,而不是返回到主菜单。我猜测RemoveBackEntry失败。

看起来应该可以,我无法重现该错误,也没有Focus或Odyssey。有人知道可能出什么问题吗?

最佳答案

我认为您应该替换:

NavigationService.RemoveBackEntry();


与:

 while (NavigationService.CanGoBack)
 {
    NavigationService.RemoveBackEntry();
 }

关于c# - Windows Phone:导航失败后,RemoveBackEntry,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21845184/

10-10 18:18