我正在使用 Scenario4 测试后台示例,它从不调用运行,我正在按照步骤操作,这就是我所看到的:
1.- 调用后
BackgroundTaskRegistration task = builder.Register();
该任务具有 Trigger = null
是否应该是之前指定的触发器
builder.SetTrigger(trigger); ?
2.- 理论上,当我注册后台任务时,它应该出现在这里 EventViewer - BackgroundTaskInfrastructure 但它没有,应该出现在这里?
3.- 尝试调试我调试位置 - 暂停应用程序,但在超过 15 分钟后它从未到达,应该像暂停和等待一样简单?
我还在里面添加了运行通知:
var toastXML = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
var toastTextElements = toastXML.GetElementsByTagName("text");
toastTextElements.First().AppendChild(toastXML.CreateTextNode("Hello World:"));
var toastNotification = new ToastNotification(toastXML);
toastNotification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(30);
ToastNotificationManager.CreateToastNotifier().Show(toastNotification);
但它永远不会出现。那么带有 TimeTrigger 的 BackgroundTask 是否有效?
最佳答案
在我的例子中,BackgroundTask 的 Run 方法中有一个 await 调用。观看视频 https://channel9.msdn.com/Events/Windows/Developers-Guide-to-Windows-10-RTM/Background-Execution 后,我了解到我必须致电:
var cost = BackgroundWorkCost.CurrentBackgroundWorkCost;
并得到
var deferral = taskInstance.GetDeferral();
最后当我的电话结束时,请致电:
deferral.Complete();
现在它总是调用我的任务总是完成,唯一的问题,我认为这是不允许的,我不能调用:
Launcher.LaunchUriAsync(new Uri(favorite.Uri, UriKind.Absolute));
可能是不允许启动器,但现在每 15 分钟显示一次 toast 。
关于c# - BackgroundTask UWP Windows 10 TimeTriggeredTask 示例已注册但从未启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31807296/