处理来自后台任务的 toast 通知动作触发器 - UWP
Posted
技术标签:
【中文标题】处理来自后台任务的 toast 通知动作触发器 - UWP【英文标题】:Handling toast notification action trigger from background task - UWP 【发布时间】:2016-02-16 14:38:10 【问题描述】:我有一个 UWP 的后台任务,一旦发生推送通知就可以触发该任务,但我想在应用程序处于后台时触发正常 toast 通知的任务。
我发现ToastNotificationActionTrigger
可以这样做,但它只能在该通知的激活类型设置为后台时触发BG任务。
是否有一种解决方法可以区分何时收到并使用 BG 中的 App 激活的 Toast 通知与在 Foreground 中激活的 Toast 通知。
【问题讨论】:
为什么不把toast的激活类型设置为Background呢?这就是你如何让 toast 在点击时激活后台任务,而不是启动你的应用程序。 因为 toast 通知并非只针对背景。情况是在 BG 或 Foreground 可以随时收到通知。只是需要在被点击的 App 状态下有所不同 您的方案仍然没有意义。你能从用户的角度更清楚地描述确切的场景吗? 【参考方案1】:ToastNotification 类有一个 Activated 事件,因此您可以在创建它后附加一个事件处理程序,以便在没有后台任务的情况下接收激活事件。
当用户通过点击或点击激活 toast 通知时发生 触碰。正在运行的应用订阅此事件。
为了从应用的先前实例创建的 toast 接收激活事件,您还需要在应用启动时使用 ToastNotificationManager 类枚举当前的 toast 通知,并将事件处理程序附加到它们。
【讨论】:
是的,但是通过您所说的方法,您能否解释一下,我们如何区分在前台激活的 toast 通知和在后台收到的 toast 通知? @user1917864 显然,Activated 事件只能在前台出现。所以如果你得到了激活的事件,你的应用程序正在运行,否则,你只能在后台得到它。所以激活事件被引发或不区分......我认为你的问题无论如何都是XY问题...... 不,即使应用程序在后台,激活的事件也会被触发。 @user1917864 当应用程序处于后台时,您的应用程序执行被暂停,事件如何被触发?!如果您的意思是在 Resuming 之后,则在 Suspended 事件上分离处理程序。 您不想在 ToastNotification 类上使用 Activated 事件。该事件仅在弹出的 toast 横幅上触发。如果用户通过操作中心单击您的 toast,则不会触发它。这不是你想要的。以上是关于处理来自后台任务的 toast 通知动作触发器 - UWP的主要内容,如果未能解决你的问题,请参考以下文章