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();
我是 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();