我有一个Windows 10安装程序的UWP应用程序,可以通过WNS接收Raw和Toast通知。在前台和在后台挂起时,我可以正确接收消息。
在前台,我设置了一个处理程序PushNotificaitonChannel.PushNotificationReceived,并在处理程序中设置了args.Cancel == true,一旦我处理了该消息。
对于后台处理,我使用PushNotificationTrigger()注册了一个正在进行的后台任务。除一个令人困惑的问题外,这非常有效:我经常收到原始通知的重复副本。重复项的数量范围为1-20 +。
从版本14393到最新发布的版本17763,我已经在许多不同版本的Windows上看到了这种行为。
我可以在Visual Studio下复制重复项,并注意到调用堆栈在第一张收据和重复收据之间有所不同。我没有发现任何隐藏在本机/ COM数据结构中的状态来指示如何停止重复项。我可以发布堆栈跟踪信息(如果有帮助的话)。
我希望其他人知道如何停止此操作-以某种方式确认正在进行的后台任务中收到原始WNS消息。
非常感谢您阅读和考虑此问题。
编辑:在研究最小示例时,我发现了以下行为模式。