使用 PushNotificationTrigger() 的后台任务
Background Task using PushNotificationTrigger()
对于 TimerTigger() 后台任务工作正常。当我想调试时,我可以从生命周期事件中进行调试。但是当我使用 PushNotificationTrigger() 时,我无法调试后台任务。我没有得到我做错的地方,请帮忙。
This is what I get on Lifecycle Events while debugging.
这就是我为原始通知注册后台任务的方式,
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>
我已经检查了我们的代码和配置文件,看起来它们应该是正确的,为了让您的 Backgroundtask 的名称显示在您的生命周期事件中 windows 以便您进行调试,您需要单击 "Suspend" Lifecycle 事件中的事件 windows 在您注册了 Backgroundtask 之后。然后你的 Backgroundtask 的名称将显示在生命周期事件中 windows。
如果还是不行,请问您调试前是否正确注册了Backgroundtask,只有我们注册成功了,才能使用Lifecycle事件调试Backgroudtask。如果是这样,能否请您尝试在寄存器方法中放置一个断点,看看会发生什么?
更多信息,请查看以下两篇文章:
对于 TimerTigger() 后台任务工作正常。当我想调试时,我可以从生命周期事件中进行调试。但是当我使用 PushNotificationTrigger() 时,我无法调试后台任务。我没有得到我做错的地方,请帮忙。 This is what I get on Lifecycle Events while debugging. 这就是我为原始通知注册后台任务的方式,
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>
我已经检查了我们的代码和配置文件,看起来它们应该是正确的,为了让您的 Backgroundtask 的名称显示在您的生命周期事件中 windows 以便您进行调试,您需要单击 "Suspend" Lifecycle 事件中的事件 windows 在您注册了 Backgroundtask 之后。然后你的 Backgroundtask 的名称将显示在生命周期事件中 windows。
如果还是不行,请问您调试前是否正确注册了Backgroundtask,只有我们注册成功了,才能使用Lifecycle事件调试Backgroudtask。如果是这样,能否请您尝试在寄存器方法中放置一个断点,看看会发生什么?
更多信息,请查看以下两篇文章: