C# 检测UWP应用程序';s在后台任务中取消通知

C# 检测UWP应用程序';s在后台任务中取消通知,c#,windows,uwp,C#,Windows,Uwp,当我的应用程序的通知被取消时,我需要采取某些措施 我正在使用周围的东西来检索/响应通知更新 在这些文档之后,我正在为更新注册一个后台任务: var builder = new BackgroundTaskBuilder(); builder.Name = "ToastHistoryChangedBackgroundTask"; builder.SetTrigger(new ToastNotificationHistoryChangedTrigger()); builder.Register();

当我的应用程序的通知被取消时,我需要采取某些措施

我正在使用周围的东西来检索/响应通知更新

在这些文档之后,我正在为更新注册一个后台任务:

var builder = new BackgroundTaskBuilder();
builder.Name = "ToastHistoryChangedBackgroundTask";
builder.SetTrigger(new ToastNotificationHistoryChangedTrigger());
builder.Register();
更新将通过
OnBackgroundActivated()
,以及
中的一些参数,以显示NotificationHistoryChangedTriggerDetail
(例如,解雇原因)。但是,这实际上并没有告诉您哪些通知已经更新。我使用
手动跟踪当前状态,以调用NotificationManager.History.GetHistory()
;在更新时,我可以检查删除通知的差异和原因

这很好,但当应用程序不运行时,我会错过删除。后台任务即使在应用程序关闭时也会触发,因此我确实得到了更新,但在
OnBackgroundActivated()
中,通知已经消失了。比如说,如果所有内容都已清除,
GetHistory()
将报告0个通知,但我没有以前的状态可供比较

我也尝试过使用类似的模式;虽然它有点通用(侦听所有通知,而不仅仅是应用程序的通知),但它也面临着同样的问题,即在通知不再显示在查询中后获取更新。还要注意文档如何使用相同的同步机制来推断增量


是否有一种方法可以检索通知更新的实际内容,或者有另一种机制可以解决此问题?

您是否尝试从后台任务订阅toast通知的
discomered
事件?(你必须推迟任务才能继续运行。)@RaymondChen:我明白你的意思,但我会订阅哪种通知?在这一点上,根据我的示例,将报告0个通知。除非你说的是进程外后台任务,但据我所知,这些任务是不推荐的,对吗?进程外后台任务仍然完全受支持。但是如果您不喜欢它们,您也可以从前台进程后台任务中执行此操作。@IosifSpulber能否与我们分享您的解决方案?您是否尝试从后台任务订阅toast通知的
discomered
事件?(你必须推迟任务才能继续运行。)@RaymondChen:我明白你的意思,但我会订阅哪种通知?在这一点上,根据我的示例,将报告0个通知。除非你说的是进程外后台任务,但据我所知,这些任务是不推荐的,对吗?进程外后台任务仍然完全受支持。但如果您不喜欢它们,您也可以从前台进程后台任务中执行此操作。@IosifSpulber能否与我们分享您的解决方案?