Windows运行时中的页面状态

时间:2014-10-09 19:54:35

标签: c# xaml windows-phone-8 windows-runtime windows-phone

我的问题是我想知道用户何时导航到该页面以及何时导航。所以我可以执行一些特定于页面的任务,例如subscribing and unsubscribing to events.

以前很明显,我们可以覆盖OnNavigatedToOnNavigatingFrom方法。但是在Windows Phone Runtime中,无法保证当用户在应用程序之间切换时会出现这些方法。

在Windows Phone Runtime中,如何知道用户何时打开页面以及何时离开(到另一个页面,启动屏幕或其他应用程序)?

1 个答案:

答案 0 :(得分:0)

当您导航到另一个页面时 - 很简单,您处理NavigatingFrom / NavigatedTo。如果没有 - 它也很简单 - 你不应该得到这些事件,所以在大多数情况下你什么都不做。我已经看到NavigatingFrom被提升,但在某些情况下应用程序被暂停并且正在从Frame读取导航状态,即使技术上的应用内导航没有发生也没有在简历上匹配NavigatedTo事件。您可能希望通过在触发Suspending之前和之后设置并清除Application.OnSuspending事件(或NavigatingFrom覆盖)中的某些标记来对其进行过滤,然后在页面{{1}中忽略它某些代码的处理程序。您可能仍希望在该事件中保存页面状态,但如果应用程序在终止之前恢复,则不会取消订阅其他事件。

NavigatingFrom是您可能对保存/加载整体应用状态或刷新数据感兴趣的一些事件,但是对于订阅/取消订阅事件可能更少,因为大多数事情应该没关系当你切换到另一个应用程序时,app会被暂停。

Application.Suspending/Resuming事件是您要处理的部分,如果您想触摸需要在可视化树中实际加载的UI部分,因为Page.Loaded/Unloaded在页面加载之前发生。