如何在暂停和恢复后重新初始化Windows手机应用页面(Prism.StoreApps)

时间:2015-05-07 09:00:58

标签: windows-phone-8.1 prism

我有一个(Prism.StoreApps)应用程序,其页面必须在页面导航时释放使用过的对象(在OnNavigatedFrom中)。当应用程序暂停时也会发生这种情况(因为然后调用了OnNavigatedFrom)。应用程序恢复时,必须重新初始化该对象。据我所知,当应用程序恢复并且页面进入前台时,不会引发任何页面事件。我知道该应用的Suspending事件。问题是无法使用它,因为重新初始化页面上的对象涉及该页面上的UI元素。

问题是如何通知页面必须因简历而重新初始化。

澄清:页面上的对象是MediaCapture。必须将其设置为CaptureElement的来源。必须调用StartPreviewAsync才能将媒体流显示为预览。这是初始化的一部分。必须调用导航至少StopPreviewAsync以允许其他应用使用相机。在必须再次调用包含MediaCaptureCaptureElement至少StartPreviewAsync的页面上恢复应用后。由于页面原因不明(假设ResumingMediaCapture被引用为App实例的属性),因此无法在应用的CaptureElement事件中执行此操作。应用程序在恢复时崩溃(没有任何错误信息)。

1 个答案:

答案 0 :(得分:1)

Windows Phone RT 8.1和Windows 8.1在应用程序生命周期中暂停/恢复时的行为相同。在MSDN上有关于处理application lifecycle with Prism的优秀链接。简而言之,您需要处理两个重要案例:

  • 应用程序在暂停后终止。重新打开应用程序时,您将获得OnLaunched事件,Prism将处理恢复状态,创建框架并启动Navigate。默认情况下应该正确处理此方案。
  • 要覆盖暂停/恢复而不终止,您必须为Resuming事件注册事件处理程序。我个人然后会通过EventAggregator发送一条消息来通知你的视图/视图模型。如有必要,请在邮件的接收方添加一个小延迟。