繁体   English   中英

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

[英]Windows store app 8.1 - Background Task not triggered

我是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>
...

但是运行方法永远不会受到打击。

请问我可能是什么问题?

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

请考虑我不是在谈论Windows Phone App,而是Windows App

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM