在后台任务中检测UWP应用的已关闭通知

时间:2019-06-14 14:44:24

标签: c# windows uwp

在我的应用程序通知被关闭时,我需要采取某些措施。

我正在使用ToastNotificationHistory周围的内容来检索通知并对其作出反应。

在文档之后,我正在注册一个后台任务以进行更新:

WAR

更新将通过var builder = new BackgroundTaskBuilder(); builder.Name = "ToastHistoryChangedBackgroundTask"; builder.SetTrigger(new ToastNotificationHistoryChangedTrigger()); builder.Register(); 以及OnBackgroundActivated()中的一些参数(例如,关闭原因)进行。但是,这实际上并不能告诉您哪些通知已更新。我使用ToastNotificationHistoryChangedTriggerDetail手动跟踪当前状态;关于更新,我可以检查差异和删除通知的原因。

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

我也使用UserNotificationChangedTrigger尝试了类似的模式;虽然比较通用(侦听所有通知,而不仅仅是应用程序的通知),但是在通知不再显示在查询中之后,它也会遇到获取更新的相同问题。另请注意,文档如何采用相同的同步机制来推断增量。

是否可以检索通知更新的实际内容,或者是否有其他机制可以解决此问题?

0 个答案:

没有答案