2

我在应用程序中有几页需要进行约2-3分钟的同步调用才能获得同步,用户可以在同步过程中离开该页面并可以进入访问多个页面后再次返回,并且同步一直持续到他在其他页面上,当我从同步页面进入页面并按下“返回”按钮时,一切正常。但是,当我进入页面并导航回到应用程序栏的同步页面,会创建一个新的页面实例,同步就像重新启动一样。导航上的新页面实例

现在我知道每件事情都正常工作,因为当我调用NavigationService.Navigate()时创建页面的新实例,但是我应该在这种情况下做什么?如何获取页面的旧实例?

谢谢...

回答

0

你不能得到一个页面的“老”的实例,它不能保证向后导航将刷新页面的上一个实例,它可能是由一个新实例相同的页面,但恢复到相同的状态(假设您保存了任何)。

如果你想提供向后从应用程序栏导航那么)你可能不应该,因为这是后退按钮是干什么用的,和b)你应该确保你使用NavigationService.GoBack()代替NavigationService.Navigate()因为导航将始终启动您的页面的新实例。

如果您想要访问的页面不是上一页,那么听起来好像您试图实施非线性导航,其中App Hub上有一个配方。

通过场景的声音,您应该分开处理这个长时间运行的过程(远离视图),然后在用户导航到相关页面时将其进度或结果显示在视图中。