gpt4 book ai didi

uwp - UWP 应用程序关闭时如何处理?

转载 作者:行者123 更新时间:2023-12-02 01:20:49 30 4
gpt4 key购买 nike

有时我有一个打开的流或一个事件的队列,必须在应用程序关闭时正确处理。在 WPF 应用程序中,我可以在应用程序上使用 Unloading 事件,但在 UWP 中我注意到这样的事件不存在。

我如何可靠地做到这一点?

PS:我使用的是 Template 10 框架。

最佳答案

在通用 UWP 应用程序中,了解应用程序正在关闭的唯一可靠方法是附加到应用程序类中的 Suspending 事件。为了有效地做到这一点,您需要处理事件并将此操作以某种方式发送到您的 View 模型中,您可以在其中关闭您的流或清除您的队列。

public App()
{
this.InitializeComponent();
this.Suspending += App_Suspending;
}

private void App_Suspending(Object sender, SuspendingEventArgs e)
{
// close stream
}

在 Template 10 应用程序中,执行此操作的最佳方法是覆盖 View 模型中的 OnNavigatedFrom 方法,并查看暂停参数是否为真。如果是,那么您的应用程序正在关闭,现在是关闭您的流或清除您的队列的适当时间。不要弄乱应用程序类。

public override Task OnNavigatedFromAsync(IDictionary<String, Object> pageState, Boolean suspending)
{
if (suspending)
{
// close stream
}
return base.OnNavigatedFromAsync(pageState, suspending);
}

或者,如果您使用没有 View 模型的模板 10(100% 支持),则模板 10 应用程序类提供覆盖而不是要处理的事件。覆盖此方法并在那里关闭您的流。

public override Task OnSuspendingAsync(Object s, SuspendingEventArgs e, Boolean prelaunchActivated)
{
// close stream
return base.OnSuspendingAsync(s, e, prelaunchActivated);
}

祝你好运。

关于uwp - UWP 应用程序关闭时如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348942/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com