首页 文章

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

提问于
浏览
1

我是Windows Store App的新手,我正在尝试使用后台任务 .

我通过这种方式在按钮单击事件上注册它: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>
...

但是run方法永远不会被击中 .

请问我的问题是什么?

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

Please consider that I am not talking about Windows Phone App but Windows App

2 回答

  • 0

    对于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();
    
  • 2

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

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

相关问题