【发布时间】:2016-04-18 06:54:16
【问题描述】:
我有一个 UAP 应用程序,当我在 Windows 10 手机上调试时,会自动触发 IBackgroundTask。当我在本地机器(Windows 10 x86)上调试时,根本不会调用它。怎么触发?
【问题讨论】:
-
这是什么类型的任务?应该在哪个“事件”上触发?
标签: c# windows-10-universal background-task
我有一个 UAP 应用程序,当我在 Windows 10 手机上调试时,会自动触发 IBackgroundTask。当我在本地机器(Windows 10 x86)上调试时,根本不会调用它。怎么触发?
【问题讨论】:
标签: c# windows-10-universal background-task
一种简单的方法是设置系统触发器。在您的清单中,您需要一个带有“系统事件”属性的“后台任务”声明。 在您的 C# 代码中,您必须注册您的任务,并且您可以将任务绑定到特定的事件系统,例如“NetworkStateChange”:
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
task.Value.Unregister(true);
}
var result = await BackgroundExecutionManager.RequestAccessAsync();
if (result == BackgroundAccessStatus.Denied)
{
return;
}
BackgroundTaskBuilder builder = new BackgroundTaskBuilder();
builder.Name = "<task name>";
builder.TaskEntryPoint = "<task entry point>";
builder.SetTrigger(new SystemTrigger(SystemTriggerType.NetworkStateChange, false));
var registration = builder.Register();
使用此代码,您可以在网络上手动操作启动任务(切换 wifi 或拔下电缆)。
【讨论】:
【讨论】:
<Task Type="timer" />。显然,您可以向同一个后台任务添加多种类型的触发器——如果您尝试添加计时器触发器会发生什么?