我是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)上测试我的应用程序。
请考虑我不是在谈论Windows Phone应用程序而是Windows应用程序
答案 0 :(得分:2)
对于Windows Phone您必须要调用此
if(blank == true)
所以完整的代码是
await BackgroundExecutionManager.RequestAccessAsync();
答案 1 :(得分:0)
您正在使用TimeTrigger任务来响应触发器(触发)。 TimeTrigger Task之间的最短时间必须为30分钟。因此,您可以在每30分钟后执行一次后台任务。它类似于Windows 8中的Periodic Trigger。因此,您更新的代码行将是:
builder.SetTrigger(new TimeTrigger(30, false));