背景任务在特定时间

时间:2016-02-01 17:10:18

标签: c# uwp background-task

我想在特定的DateTime.Timeofday安排后台任务。我研究了很多,发现TimeTrigger是唯一不太准确的方法。 我的代码是:

private async void RegisterBackgroundTask()
    {
        var taskName = "TileUpdateTask";

        var backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync();
        if (backgroundAccessStatus == BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity || backgroundAccessStatus == BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity)
        {
            foreach (var task in BackgroundTaskRegistration.AllTasks)
            {
                if (task.Value.Name == taskName)
                {
                    return;
                }
            }
            BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder();
            taskBuilder.Name = taskName;
            taskBuilder.TaskEntryPoint = typeof(BackgroundTasks.TileUpdateTask).FullName;
            taskBuilder.SetTrigger(new TimeTrigger(DateTime.Now.TimeOfDay,false)); //////////////////////////////here!!!!!!!!
            var registeration = taskBuilder.Register();
        }
    }

我也发现了同样的问题, Run Background Task at specific time - UWP 但这只是一种方式。有没有直接的方法呢?

1 个答案:

答案 0 :(得分:0)

如果您的应用程序是针对Windows IoT,您可以开发一个“后台应用程序(IoT)”,它基本上是一个可以永久运行的后台任务。

new projet wizard

这仅限于物联网设备系列。 您将找到有关项目template page的更多详细信息。

根据您的需要,您可以使用应用程序到后台的通信来控制常规应用程序中的“后台应用程序(IoT)”。有关详细信息,请参阅此walkthrough