具有两种可用的 onActivated 侦听器的 UWP c# 应用程序 - 通过通知激活

Posted

技术标签:

【中文标题】具有两种可用的 onActivated 侦听器的 UWP c# 应用程序 - 通过通知激活【英文标题】:UWP c# app with two kinds of onActivated listeners available - Activation by notification 【发布时间】:2016-10-05 04:18:49 【问题描述】:

目前在我的应用程序中,我正在注册一个 onActivated 侦听器以执行并检查我的共享活动,如下所示:

        Window.Current.Activated += Current_Activated;

使用以下方法检查激活状态:

private async void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)
        
if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
            

            
            else
                                   

现在我想从后台任务的通知中实现激活。单击通知当前正在打开应用程序,如果已经打开,则将其置于前台。这是标准行为。现在我想通过通知在激活时执行一些代码,但我的方法从未被调用,而且我并不完全理解微软的在线资料,因为它看起来相对简单。

我正在注册监听器:

        (Application.Current as App).Activated = new EventHandler<IActivatedEventArgs>(App_Activated);

永远不会被调用的方法是这样的:

private void App_Activated(object sender, IActivatedEventArgs e)
                                                                

这两者有冲突吗?我可以做些什么来在我现有的方法中实现通知激活吗?

我已经阅读了这个页面和更多页面:https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/07/08/quickstart-sending-a-local-toast-notification-and-handling-activations-from-it-windows-10/

即使从我下载的测试应用程序中,我也并不真正了解需要做什么。除此之外,我不需要将通知中的任何信息传递给主要活动。只需打开它并执行一个刷新页面的命令,但仅限于通知激活。

【问题讨论】:

【参考方案1】:

您应该只覆盖App.xaml.cs 中的OnActivated(IActivatedEventArgs args) 方法并检查args.Kind 属性是否为ActivationKind.ToastNotification

您可以找到有关处理 UWP 应用激活here 的更多信息。

【讨论】:

啊啊啊。就是这样。我不知道我必须在 app.xaml.cs 中覆盖它。我尝试在我的应用程序主页中覆盖它。谢谢【参考方案2】:

正如玛丽安所说,您需要在 App.xaml.cs 类中覆盖 OnActivated 方法。 OnActivated 方法在你的 toast 被点击时被调用,它包含 toast 参数,这样你就知道点击了什么 toast。请注意,您必须在 OnActivated 中执行与 OnLaunched 相同的 Frame 初始化,因为如果用户在您的应用关闭时单击 toast,则只会调用 OnActivated 方法 - OnLaunched 获胜'不会被调用。

本快速入门准确解释了如何处理 toast 激活,并包含完整的代码示例:Quickstart: Sending a local Toast notification

【讨论】:

以上是关于具有两种可用的 onActivated 侦听器的 UWP c# 应用程序 - 通过通知激活的主要内容,如果未能解决你的问题,请参考以下文章

创建一个 redis 侦听器 - 可能在 php 中?

SQL Server Always on Clustering,无法创建侦听器

ORA-12516, TNS: 侦听器找不到可用的处理程序

SQL Server 高可用(always on)配置指南之数据库侦听器及高可用

alwayson10-创建alwayson高可用性组侦听器

Actionscript:如何处理具有相同类型但具有不同函数侦听器的事件?