2010-12-21 78 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)可能是在導航,而不是在正確的框架中。

希望這可以幫助其他人...

相關問題