具有两种 onActivated 侦听器的 UWP c# 应用程序 - 通过通知激活
UWP c# app with two kinds of onActivated listeners available - Activation by notification
目前在我的应用程序中,我正在注册一个要执行的 onActivated 侦听器并检查我的共享 activity,如下所示:
Window.Current.Activated += Current_Activated;
使用如下方法查看激活状态:
private async void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)
{
if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
{
}
else
{} }
现在我想通过后台任务的通知实现激活。单击通知当前正在打开应用程序或将其带到前台(如果已打开)。这是标准行为。现在我想通过通知在激活时执行一些代码,但我的方法从未被调用,而且我并不完全理解 Microsoft 在线 material,因为它看起来相对简单。
我正在这样注册监听器:
(Application.Current as App).Activated = new EventHandler<IActivatedEventArgs>(App_Activated);
永远不会调用的方法如下所示:
private void App_Activated(object sender, IActivatedEventArgs e)
{ }
这两个是相互矛盾的吗?我可以做些什么来将通知激活实施到我现有的方法中吗?
即使是我下载的测试应用程序,我也不太明白需要做什么。除此之外,我不需要将通知中的任何信息传递给主 activity。只需打开它并执行一个刷新页面的命令,但仅在通知激活时执行。
您应该只覆盖 App.xaml.cs
中的 OnActivated(IActivatedEventArgs args)
方法并检查 args.Kind
属性 是否为 ActivationKind.ToastNotification
.
您可以找到有关处理 UWP 应用程序激活的更多信息here。
正如 Marian 所说,您需要覆盖 App.xaml.cs
class 中的 OnActivated
方法。 OnActivated
方法在你的 toast 被点击时被调用,它包含 toast 参数,这样你就知道点击了什么 toast。请注意,您必须在 OnActivated 中执行与您在 OnLaunched 中相同的框架初始化,因为如果用户在您的应用程序关闭时单击 toast,则只会调用 OnActivated 方法 -不会调用 OnLaunched。
此快速入门准确解释了如何处理 toast 激活,并包含完整的代码示例:Quickstart: Sending a local Toast notification
目前在我的应用程序中,我正在注册一个要执行的 onActivated 侦听器并检查我的共享 activity,如下所示:
Window.Current.Activated += Current_Activated;
使用如下方法查看激活状态:
private async void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)
{
if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
{
}
else
{} }
现在我想通过后台任务的通知实现激活。单击通知当前正在打开应用程序或将其带到前台(如果已打开)。这是标准行为。现在我想通过通知在激活时执行一些代码,但我的方法从未被调用,而且我并不完全理解 Microsoft 在线 material,因为它看起来相对简单。
我正在这样注册监听器:
(Application.Current as App).Activated = new EventHandler<IActivatedEventArgs>(App_Activated);
永远不会调用的方法如下所示:
private void App_Activated(object sender, IActivatedEventArgs e)
{ }
这两个是相互矛盾的吗?我可以做些什么来将通知激活实施到我现有的方法中吗?
即使是我下载的测试应用程序,我也不太明白需要做什么。除此之外,我不需要将通知中的任何信息传递给主 activity。只需打开它并执行一个刷新页面的命令,但仅在通知激活时执行。
您应该只覆盖 App.xaml.cs
中的 OnActivated(IActivatedEventArgs args)
方法并检查 args.Kind
属性 是否为 ActivationKind.ToastNotification
.
您可以找到有关处理 UWP 应用程序激活的更多信息here。
正如 Marian 所说,您需要覆盖 App.xaml.cs
class 中的 OnActivated
方法。 OnActivated
方法在你的 toast 被点击时被调用,它包含 toast 参数,这样你就知道点击了什么 toast。请注意,您必须在 OnActivated 中执行与您在 OnLaunched 中相同的框架初始化,因为如果用户在您的应用程序关闭时单击 toast,则只会调用 OnActivated 方法 -不会调用 OnLaunched。
此快速入门准确解释了如何处理 toast 激活,并包含完整的代码示例:Quickstart: Sending a local Toast notification