2010-12-21 54 views
1

我有一个应用程序,工作得很好。但是,如果我启动任何一项任务(WebBrowserTask,SendEmailTask​​等),我就会被击倒。当我完成任务后,应用程序恢复正常,但Navigate()调用不再工作。这意味着代码运行但没有任何反应,所有的导航都会从此断开。当Windows Phone应用程序从墓碑App.RootFrame.Navigate(uri)回来后不起作用

下面是我用导航代码:

((App)App.Current).RootFrame.Navigate(new Uri("/MyPage.xaml", UriKind.Relative)); 

我处理NavigationFailed事件以及那永远不会被解雇......

((App)App.Current).RootFrame.NavigationFailed += RootFrame_NavigationFailed; 

回答

0

这是ApplicationBar icon button click event not fired after a PhotoChooserTask报道了同样的问题?

如果是这样,则问题可能是由于在应用程序完全重建之前试图导航。

您可以通过强制导航到UI线程来解决这个问题。 (见链接的问题。)

此外,
有你直接在RootFrame调用Navigate,而不是使用NavigationService理由吗?

+0

Ineresting。如何在应用程序加载之前停止导航?我将尝试在其他线程中推荐的UI线程技巧。顺便说一句 - 我正在使用RootFrame.Navigate,因为System.Windows.Navigation.NavigationService没有任何静态方法(如Navigate()),我找不到实例化的地方。任何指针?谢谢! – will 2010-12-23 04:53:48

0

你能在一个重现此问题空的项目?

如果没有,您的应用中可能会有其他内容导致此问题。

+0

它在Hello World应用程序中正常工作,这就是问题所在。任何想法如何发生? – will 2010-12-22 04:58:36

0

虽然我没有最终找到根本原因,但我发现如何摆脱这种情况。它看起来像应用程序从另一个任务返回时,“Application.Activated”触发。经过3个小时的调试后,我发现如果您在此方法中设置了Application.RootVisual,导航功能将再次运行。在调试器中,RootVisual是一个框架,但它看起来是错误的 - 不确定如何发生(任何指导欢迎)。所以当我打电话时。导航(uri)可能是在导航,而不是在正确的框架中。

希望这可以帮助其他人...

相关问题