Windows 10 Universal App - Geofence后台任务未被触发

时间:2016-01-16 13:27:21

标签: c# background-task windows-10-universal

我试图创建一个Windows UAP(C#)来不断在后台任务中记录位置数据,现在我尝试做的只是从地理围栏触发器开始后台任务。 / p>

我已经按照很多指南来了解如何执行此操作,我已将Package.appxmanifest中的入口点添加到" BackgroundTask.LocationBackgroundTask"并选择了位置属性。

然后我使用以下内容注册任务:

public bool IsTaskRegistered()
{
    var Registered = false;
    var entry = BackgroundTaskRegistration.AllTasks.FirstOrDefault(keyval => keyval.Value.Name == BackgroundTaskName);
    if (entry.Value != null)
        Registered = true;
    return Registered;
}

我使用以下代码验证后台任务是否已注册,并返回true表示任务已注册:

builder.SetTrigger(new SystemTrigger(SystemTriggerType.PowerStateChange, true));

我遇到的问题是后台任务中的Run方法没有被触发。

为了验证后台任务本身是好的,我换出了var data = [{ "avg": 996.8, "sessions": [{ "minTime": 0, "maxTime": 599, "count": 10 }, { "minTime": 600, "maxTime": 1199, "count": 2 }, { "minTime": 1800, "maxTime": 2399, "count": 4 }, { "minTime": 2400, "maxTime": 2999, "count": 3 }], "timestamp": 1449360000 }, { "avg": 986.4, "sessions": [{ "minTime": 0, "maxTime": 599, "count": 12 }, { "minTime": 600, "maxTime": 1199, "count": 1 }, { "minTime": 1200, "maxTime": 1799, "count": 2 }, { "minTime": 1800, "maxTime": 2399, "count": 2 }, { "minTime": 3000, "maxTime": 3599, "count": 3 }], "timestamp": 1449540000 }], result = data.map(function (a) { return { avg: a.avg, sumcount: a.sessions.reduce(function (s, b) { return s + b.count; }, 0), timestamp: a.timestamp }; }); document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');的触发器类型(并更新了Package.appxmanifest以获得系统事件属性)。然后,当我从我的笔记本电脑上拔下电源时,我预计会触发后台任务,这很好。

另外需要注意的是,在调试时我没有看到Lifecycle Events下的后台任务,而我在使用SystemTrigger进行测试时也是如此。

因此,问题似乎特定于地理围栏触发。我开始把头发拉出来,所以对任何建议都会感激不尽。

0 个答案:

没有答案