我需要在我的应用程序中实现地理围栏后台任务。我主要使用了来自 MSDN 地理围栏示例的代码。无论我在做什么,它总是在 App.gics 调试器中结束,同时尝试获取 BackgroundExecutionManager 访问权限。
public async static void Register()
{
if (!IsTaskRegistered())
{
var result = await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = TaskName;
builder.TaskEntryPoint = typeof(GeofenceTask).FullName;
builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence));
builder.Register();
}
}
它永远不会进入 var builder = new BackgroundTaskBuilder(); - 总是在之前结束。我可能做错了什么?
顺便提一句。IsTaskRegistered() 工作正常,但以防万一:
public static bool IsTaskRegistered()
{
var taskRegistered = false;
var entry = BackgroundTaskRegistration.AllTasks.FirstOrDefault(kvp => kvp.Value.Name == TaskName);
if (entry.Value != null)
taskRegistered = true;
return taskRegistered;
}