我的问题是我想知道用户何时导航到该页面以及何时导航。所以我可以执行一些特定于页面的任务,例如subscribing and unsubscribing to events.
以前很明显,我们可以覆盖OnNavigatedTo
和OnNavigatingFrom
方法。但是在Windows Phone Runtime中,无法保证当用户在应用程序之间切换时会出现这些方法。
在Windows Phone Runtime中,如何知道用户何时打开页面以及何时离开(到另一个页面,启动屏幕或其他应用程序)?
答案 0 :(得分:0)
当您导航到另一个页面时 - 很简单,您处理NavigatingFrom
/ NavigatedTo
。如果没有 - 它也很简单 - 你不应该得到这些事件,所以在大多数情况下你什么都不做。我已经看到NavigatingFrom
被提升,但在某些情况下应用程序被暂停并且正在从Frame
读取导航状态,即使技术上的应用内导航没有发生也没有在简历上匹配NavigatedTo
事件。您可能希望通过在触发Suspending
之前和之后设置并清除Application.OnSuspending
事件(或NavigatingFrom
覆盖)中的某些标记来对其进行过滤,然后在页面{{1}中忽略它某些代码的处理程序。您可能仍希望在该事件中保存页面状态,但如果应用程序在终止之前恢复,则不会取消订阅其他事件。
NavigatingFrom
是您可能对保存/加载整体应用状态或刷新数据感兴趣的一些事件,但是对于订阅/取消订阅事件可能更少,因为大多数事情应该没关系当你切换到另一个应用程序时,app会被暂停。
Application.Suspending/Resuming
事件是您要处理的部分,如果您想触摸需要在可视化树中实际加载的UI部分,因为Page.Loaded/Unloaded
在页面加载之前发生。