2

我在應用程序中有幾頁需要進行約2-3分鐘的同步調用才能獲得同步,用戶可以在同步過程中離開該頁面並可以進入訪問多個頁面後再次返回,並且同步一直持續到他在其他頁面上,當我從同步頁面進入頁面並按下「返回」按鈕時,一切正常。但是,當我進入頁面並導航回到應用程序欄的同步頁面,會創建一個新的頁面實例,同步就像重新啓動一樣。導航上的新頁面實例

現在我知道每件事情都正常工作,因爲當我調用NavigationService.Navigate()時創建頁面的新實例,但是我應該在這種情況下做什麼?如何獲取頁面的舊實例?

謝謝...

回答

0

你不能得到一個頁面的「老」的實例,它不能保證向後導航將刷新頁面的上一個實例,它可能是由一個新實例相同的頁面,但恢復到相同的狀態(假設您保存了任何)。

如果你想提供向後從應用程序欄導航那麼)你可能不應該,因爲這是後退按鈕是幹什麼用的,和b)你應該確保你使用NavigationService.GoBack()代替NavigationService.Navigate()因爲導航將始終啓動您的頁面的新實例。

如果您想要訪問的頁面不是上一頁,那麼聽起來好像您試圖實施非線性導航,其中App Hub上有一個配方。

通過場景的聲音,您應該分開處理這個長時間運行的過程(遠離視圖),然後在用戶導航到相關頁面時將其進度或結果顯示在視圖中。