【发布时间】:2014-10-15 17:27:10
【问题描述】:
我对 WP8.1 中的后台任务有疑问 我按照本教程创建了一个后台任务作为 Windows 运行时组件: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977055.aspx
问题是,我无法让我的后台任务运行。它在NetworkChange 上运行。当我可以进入飞行模式并返回时,它不会开火。当我转到“调试位置”工具栏中的生命周期事件时,它会显示“无后台任务”。我已经调试了注册后台任务的代码并且它正在注册。我也得到'这个断点目前不会被击中。没有为此文档加载任何符号,我认为这是导致问题的原因。
我试过了 - 删除 bin 和 obj 文件夹并重建。 - 清理项目。 - 尝试从头开始构建项目。 - 关闭“仅我的代码”选项。 - 尝试在另一台机器上做同样的事情,仍然没有。
我的注册码
var taskRegistered = false;
var exampleTaskName = "UploadTask";
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
if (task.Value.Name == exampleTaskName)
{
taskRegistered = true;
break;
}
}
if (!taskRegistered)
{
var builder = new BackgroundTaskBuilder();
builder.Name = exampleTaskName;
builder.TaskEntryPoint = "Tasks.Upload";
builder.SetTrigger(new SystemTrigger(SystemTriggerType.NetworkStateChange, false));
BackgroundTaskRegistration task = builder.Register();
}
包清单文件如下
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="Tasks.Upload">
<BackgroundTasks>
<Task Type="systemEvent" />
<m2:Task Type="deviceUse" />
</BackgroundTasks>
</Extension>
</Extensions>
我的任务是这样的:
namespace Tasks
{
public sealed class Upload : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
Debug.WriteLine("Am i even getting here?");
}
}
}
任何人都可以帮忙,因为我花了很长时间才让它工作。谢谢
【问题讨论】:
-
您是否在清单的声明中添加了您的任务?另请检查其入口点。
-
是的,它在声明中:(
-
您可以尝试在
var builder = new BackgroundTaskBuilder();之前添加await BackgroundExecutionManager.RequestAccessAsync();吗? -
我也试过了。我找到了您的一些示例的链接。在我的机器上,您的示例后台任务无法运行。如此迷茫。我感觉这与视觉工作室更新有关......
-
奇怪的事情,你可以在设备上测试它吗?可以尝试关注this post 并检查任务是否运行吗?
标签: c# .net windows-phone-8.1 background-task