恢复应用Windows Phone

塞巴斯蒂安接收器

我有一个具有第1页和第2页的应用程序,第2页仅用实例化一次NavigationCacheMode.Required

在第2页中,我正在使用相机,因此每次导航至应用程序的其他页面或暂停应用程序时,都需要丢弃相机并稍后重新打开。

因此,我正在使用:

Application.Current.Resuming += ResumingMethod;

private async void ResumingMethod(Object sender, Object e)
{
    Debug.WriteLine("RESUMING METHOD");
    // instantiated the Camera 
    await this.Initialize();
}

第1页和第2页之间的导航运行良好,我可以从第2页中挂起该应用,然后继续运行,不会出现任何问题。但是,当我从第2页导航到第1页时,挂起应用程序并恢复运行,在第1页中调用了ResumingMethod,因此Camera初始化了,这不是我要的。

有什么方法可以只为页面添加一个暂停事件处理程序吗?

十年月亮

您可以在Page2类中执行以下操作:

public Page2()
{
    this.InitializeComponent();
    Application.Current.Resuming += Application_Resuming;
}

void Application_Resuming(object sender, object e)
{
    if (Frame.Content == this)
        createCamera();
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // This will be executed when you navigate to this page
    // but not when resuming the app from the suspended state
    // (unlike on Windows 8.1).
    createCamera();
}

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    // This will be executed when you navigate away from this page
    // as well as if the application is suspended.
    disposeCamera();
}

其他方式:

public Page2()
{
    this.InitializeComponent();
    this.Loaded += Page2_Loaded;
    this.Unloaded += Page2_Unloaded;
}

void Page2_Loaded(object sender, EventArgs e)
{
    Application.Current.Suspending += Application_Suspending;
    Application.Current.Resuming += Application_Resuming;
    createCamera();
}

void Page2_Unloaded(object sender, EventArgs e)
{
    Application.Current.Suspending -= Application_Suspending;
    Application.Current.Resuming -= Application_Resuming;
    disposeCamera();
}

void Application_Suspending(object sender, SuspendingEventArgs e)
{
    disposeCamera();
}

void Application_Resuming(object sender, object e)
{
    createCamera();
}

这样比较好,因为当页面不可见时,您将取消订阅Suspending / Resuming事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows Phone应用中的图像加载时间

来自分类Dev

在mvvm模型中实施Windows Phone应用

来自分类Dev

Windows Phone应用缺少EventToCommand

来自分类Dev

Windows Phone应用程序中的CEF

来自分类Dev

如何创建Windows Phone 8应用包?

来自分类Dev

通用应用Windows Phone定位

来自分类Dev

sqlite Windows Phone 8应用示例

来自分类Dev

Windows Phone 8.1 Silverlight应用程序

来自分类Dev

如何关闭Windows Phone 8.1应用

来自分类Dev

如何终止Windows Phone 8.1应用

来自分类Dev

恢复应用Windows Phone

来自分类Dev

Windows Phone或Windows Phone Silverlight

来自分类Dev

Singleton Windows Phone本机应用程序

来自分类Dev

Windows Phone应用中的倒数日期

来自分类Dev

Windows 10上的Windows Phone应用

来自分类Dev

使用OAuth2的Windows Phone应用

来自分类Dev

Windows Phone 8的密码锁定屏幕下快速应用程序恢复无法正常工作

来自分类Dev

在Windows Phone应用中显示html

来自分类Dev

使用新项目更新Windows Phone应用

来自分类Dev

以编程方式关闭Windows Phone应用

来自分类Dev

在Windows Phone中运行应用

来自分类Dev

多线程Windows Phone应用程序

来自分类Dev

画布线在Windows Phone应用中被裁剪

来自分类Dev

在Windows Phone上退出应用程序后恢复音乐

来自分类Dev

Windows Phone 8应用提交

来自分类Dev

最小化和恢复应用程序时如何处理网络呼叫错误-Windows Phone 8

来自分类Dev

Windows Phone应用中的OutOfMemoryException

来自分类Dev

在Windows Phone 8.1上运行Windows Phone 8应用

来自分类Dev

如何在收到推送通知时启动/恢复Windows Phone 8.1 C#应用程序