Windows phone 7 导航页面的新实例

Windows phone 7 导航页面的新实例,windows-phone-7,asynchronous,navigation,instance,back-button,Windows Phone 7,Asynchronous,Navigation,Instance,Back Button,我在一个应用程序中有几个页面,需要进行大约2-3分钟的a-Synchronous调用才能同步,用户可以在同步过程中离开该页面,并且可以在访问多个页面后再次返回,同步也会一直持续到他在其他页面上的时间,当我从同步页面转到一个页面并按下后退按钮时,一切正常。。但当我转到一个页面并从应用程序栏导航回同步页面时,会创建一个新的页面实例,同步就像重新启动一样 现在我知道一切都很好,因为调用NavigationService.Navigate()时会创建页面的新实例,但在这种情况下我应该怎么做?如果存在页面

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

现在我知道一切都很好,因为调用NavigationService.Navigate()时会创建页面的新实例,但在这种情况下我应该怎么做?如果存在页面的旧实例,如何获取该实例

谢谢…

您无法获取页面的“旧”实例,并且不能保证向后导航将重新加载页面的前一个实例,它可能是同一页面的新实例,但已恢复到相同的状态(假设您保存了任何实例)

如果您试图从应用程序栏提供向后导航,那么a)您可能不应该这样做,因为“后退”按钮就是用于此目的的;b)您应该确保使用
NavigationService.GoBack()
而不是
NavigationService.Navigate()
因为导航将始终启动页面的新实例

如果您想要访问的页面不是上一个页面,那么听起来好像您正在尝试实现非线性导航,而导航页面上有一个食谱

根据您的场景,您应该单独处理这个长时间运行的流程(远离视图),然后在用户导航到相关页面时在视图中显示其进度或结果。

您无法获得“旧”的一个页面的实例,但不能保证向后导航将重新加载该页面的前一个实例,它可能是同一页面的新实例,但已恢复到相同的状态(假设已保存)

如果您试图从应用程序栏提供向后导航,那么a)您可能不应该这样做,因为“后退”按钮就是用于此目的的;b)您应该确保使用
NavigationService.GoBack()
而不是
NavigationService.Navigate()
因为导航将始终启动页面的新实例

如果您想要访问的页面不是上一个页面,那么听起来好像您正在尝试实现非线性导航,而导航页面上有一个食谱

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