我有一个UAP应用程序,当我在Windows10手机上调试时,IBackgroundTask会自动触发。当我在本地机器(Windows10 x86)上调试时,根本不会调用它。我怎么触发它呢?
发布于 2016-04-19 15:34:42
一种简单的方法是设置系统触发器。在您的清单中,您需要一个“后台任务”声明,以及一个“系统事件”属性。在您的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或拔掉电缆)。
发布于 2016-04-19 19:59:43
调试时,您可以直接从Visual Studio 2015触发后台任务。有一个名为Lifecycle Events的下拉菜单,可以让你调用Suspend、Resume和任何注册的后台任务。事先在你的任务中设置一个断点。(在我的例子中,实现后台任务的类称为NotifyChanges。)

https://stackoverflow.com/questions/36687224
复制相似问题