自从10.0.14393
(周年纪念更新),LocationTrigger
似乎不起作用。我有:
- Windows Phone 8.1 应用程序(也适用于 UWP 应用程序)。
- 输出到的便携式库
Windows Runtime Component
图书馆 (.winmd
)
- 声明后台任务 with Location功能(设置为库作为条目)。
- 访问方式
BackgroundExecutionManager.RequestAccessAsync()
- A
LocationTrigger
类型的Geofence
.
后台任务永远不会被触发。获得访问权限后的注册/任务代码:
public sealed class GeofenceTask : IBackgroundTask
{
public static void Register()
{
var taskName = nameof(GeofenceTask);
foreach (var n in BackgroundTaskRegistration.AllTasks.Where(n => n.Value.Name == taskName))
{
n.Value.Unregister(true);
break;
}
var builder = new BackgroundTaskBuilder {Name = taskName, TaskEntryPoint = typeof (GeofenceTask).FullName};
builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence));
builder.Register();
}
public void Run(IBackgroundTaskInstance taskInstance)
{
// Do magic.
}
}
在 Windows Phone 8.1 设备或模拟器上运行是可行的。更新前,它也适用于 Windows 10 Mobile。到目前为止有已知的解决方案吗?
我也遇到这样的问题,但只是简单的 TimeTrigger 任务。任务注册没有任何错误,它在 Visual Studio 的“生命周期事件”中可见,但它没有在预定时间启动。通常(但并非总是)有助于后续步骤。
- 在 Windows 设置中拒绝访问在后台运行的应用程序
- 重启设备
- 允许访问
- 运行应用程序来注册任务
该问题是在通用 Windows 应用程序开发工具更新到版本 1.4.1 后开始发生的,但我不确定这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)