使用PushNotificationTrigger()的后台任务

时间:2016-07-05 08:53:08

标签: windows-10-universal

对于TimerTigger()后台任务工作正常。当我想调试时,我可以从Lifecycle Events中完成。但是当我使用PushNotificationTrigger()时,我无法调试后台任务。我没有得到我做错的地方,请帮忙。 This is what I get on Lifecycle Events while debugging. 这就是我为Raw Notifications注册后台任务的方法,

if (!Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name == "PushBackgroundTask"))
            {
                var result = await BackgroundExecutionManager.RequestAccessAsync();
                var builder = new BackgroundTaskBuilder();

                builder.Name = "PushBackgroundTask";
                builder.TaskEntryPoint = typeof(NotificationActionBackgroundTask.NotificationActionBG).FullName;
                builder.SetTrigger(new Windows.ApplicationModel.Background.PushNotificationTrigger());
                BackgroundTaskRegistration task = builder.Register();
            }

这是我应用的Package.appxmanifest代码,

<Extensions>
        <Extension Category="windows.backgroundTasks" EntryPoint="NotificationActionBackgroundTask.NotificationActionBG">
          <BackgroundTasks>
            <Task Type="pushNotification" />
          </BackgroundTasks>
        </Extension>
      </Extensions>

1 个答案:

答案 0 :(得分:1)

我已经检查了我们的代码和配置文件,看起来它们应该是正确的,为了让您的Lifetask的名称显示在您的Lifecycle事件窗口中以供调试,您需要点击& #34;在注册Backgroundtask后,在Lifecycle事件窗口中暂停&#34; 事件。然后,您的Backgroundtask的名称将显示在Lifecycle事件窗口中。

如果它仍然不起作用,我想知道你是否在进行调试之前正确注册了Backgroundtask,只有在我们成功注册了Backgroundtask之后,我们才能使用Lifecycle事件调试Backgroudtask。如果是这样,你能不能试着在寄存器方法中放一个断点来看看会发生什么?

有关详细信息,请查看以下两篇文章:

Debug a background task

Background tasks triggered by raw notifications