У меня есть фоновая задача, и она должна срабатывать при изменении положения, потому что она установлена с помощью триггера Geofence.
builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence));
private static async Task<string> LocationUpdateHelper()
{
try
{
var taskRegistered = false;
string myTaskName = "LocationUpdateTask";
foreach (var cur in BackgroundTaskRegistration.AllTasks)
if (cur.Value.Name == myTaskName)
{
taskRegistered = true;
break;
}
if (taskRegistered != true)
{
await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = "LocationUpdateTask";
builder.TaskEntryPoint = "SmartRuntimes.LocationUpdateTask";
builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence));
try
{
builder.Register();
Debug.WriteLine("GeoFence Task Registered");
}
catch (Exception ex)
{
Debug.WriteLine("GeoFence Task Failed : " + ex.Message.ToString());
}
}
return "success";
}
catch (Exception ex)
{
return "";
}
}
И класс LocationUpdateTask:
public sealed class LocationUpdateTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
string taskName = taskInstance.Task.Name;
var deferral = taskInstance.GetDeferral();
await BackgroundTaskHelper.UpdateLocation();
deferral.Complete();
}
}
Мой вопрос:
- Запускается ли эта фоновая задача при изменении положения?
- Какое расстояние должно измениться для запуска этой фоновой задачи?
Спасибо!