在Windows 10上运行IBackgroundTask

时间:2016-04-18 06:54:17

标签: c# windows-10-universal background-task

我有一个UAP应用程序,当我在Windows 10 Phone上调试时,会自动触发IBackgroundTask。当我在本地计算机(Windows 10 x86)上进行调试时,它根本就没有被调用。我怎么能触发它?

2 个答案:

答案 0 :(得分:1)

一种简单的方法是设置系统触发器。在清单中,您需要一个“后台任务”声明,其中包含“系统事件”属性。 在您的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或拔掉电缆)。

答案 1 :(得分:0)

调试时,您可以直接从Visual Studio 2015触发后台任务。有一个名为Lifecycle Events的下拉菜单,可让您调用SuspendResume和任何内容注册后台任务。事先在任务中设置断点。 (在我的例子中,实现后台任务的类称为NotifyChanges。)

enter image description here