Windows 商店应用 8.1 - 未触发后台任务

Windows store app 8.1 - Background Task not triggered

我是 Windows 应用商店应用的新手,我正在尝试使用后台任务。

我通过这种方式将其注册到按钮点击事件中: var builder = new BackgroundTaskBuilder();

         builder.Name = "bikePositionUpdate";
         builder.TaskEntryPoint = "BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask";
         builder.SetTrigger(new TimeTrigger(15, false)); // 

         BackgroundTaskRegistration taskRegistration = builder.Register();

所以它应该在 15 分钟内启动。

这是我的任务:

namespace BackgroundTaskGps
{
    public sealed class BikeGPSPositionUpdateBackgroundTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
             Debug.WriteLine("run run run");
        }
    }
} 

这是我的清单

...
      <Extensions>
        <Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask">
          <BackgroundTasks>
            <Task Type="timer" />
          </BackgroundTasks>
        </Extension>
      </Extensions>
...

但是 运行 方法永远不会命中。

请问我的问题是什么?

PS:我正在本地机器(同一台开发 PC)上测试我的应用程序。

请注意,我说的不是 Windows Phone App,而是 Windows App

您正在使用 TimeTrigger 任务来响应触发器(触发)。 TimeTrigger Task 之间的最短时间必须为 30 分钟。因此,您可以每 30 分钟执行一次后台任务。它类似于 windows 8 中的 Periodic Trigger。因此您的更新代码行将是:

builder.SetTrigger(new TimeTrigger(30, false));

对于Windows Phone你必须调用这个

await BackgroundExecutionManager.RequestAccessAsync();

所以完整的代码是

await BackgroundExecutionManager.RequestAccessAsync();
 builder.Name = "bikePositionUpdate";
         builder.TaskEntryPoint = "BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask";
         builder.SetTrigger(new TimeTrigger(15, false)); //For Windows Phone 8.1 minimum is 15 minutes

         BackgroundTaskRegistration taskRegistration = builder.Register();