【发布时间】:2016-11-26 09:17:23
【问题描述】:
我和这里的这个人有同样的问题:UWP Timetrigger not working 但我无法评论这个问题,因为我的声誉不够高,所以我正在创建一个新问题。
正如我所说,我有同样的问题。我注册了后台任务,但没有任何反应。我的后台任务位于一个单独的项目(运行时组件)中。所以这不是问题。 这是我注册任务的方法:
public static BackgroundTaskRegistration Register(string name, string taskEntryPoint, IBackgroundTrigger trigger, IBackgroundCondition condition)
{
var foundTask = BackgroundTaskRegistration.AllTasks.FirstOrDefault(x => x.Value.Name == name);
if (foundTask.Value != null)
return (BackgroundTaskRegistration)foundTask.Value;
var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = taskEntryPoint;
builder.SetTrigger(trigger);
if (condition != null)
builder.AddCondition(condition);
return builder.Register();
}
我就是这样称呼它的:
BackgroundTaskRegister.Register(nameof(NotificationTask), $"Epguides.Background.{_backgroundTaskName}", new TimeTrigger(30, true), null);
当我调试我的应用程序并使用 Visual Studio 中的生命周期事件来测试我的后台任务时,一切正常。所以问题不在于任务。
当我检查 BackgroundTaskRegistration 结果时,我看到属性触发器为空。在 BackgroundTaskRegistration.Trigger 的 MSDN page 上,它说以下
这不适用于您的代码。对于所有不受支持的触发器类型,此属性返回的值为 null。
所以据我了解,TimeTrigger 是一种不受支持的触发器类型,因为 Trigger 为空。
有没有人可以解释为什么它不起作用。我正在使用版本 10.0.10586
【问题讨论】:
-
一件事:'空触发器属性'是我相信的正常行为。我也用timetrigger事件实现了bgtask,调试了很多次,但是属性一直为null,任务运行良好。如果可能,我会发布其他信息作为答案。
-
thread 的最后一个答案对我有用
标签: c# uwp windows-10-universal