我想在特定的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 但这只是一种方式。有没有直接的方法呢?
答案 0 :(得分:0)
如果您的应用程序是针对Windows IoT,您可以开发一个“后台应用程序(IoT)”,它基本上是一个可以永久运行的后台任务。
这仅限于物联网设备系列。 您将找到有关项目template page的更多详细信息。
根据您的需要,您可以使用应用程序到后台的通信来控制常规应用程序中的“后台应用程序(IoT)”。有关详细信息,请参阅此walkthrough。