Я пишу приложение, которое будет отправлять данные о местоположении каждые x секунд и работать в фоновом режиме. Я вызываю следующий метод.
public void StartListening()
{
UpdateGpsService();
if(CLLocationManager.LocationServicesEnabled)
{
locationManager.DesiredAccuracy = 10;
nint taskId = UIApplication.SharedApplication.BeginBackgroundTask(() =>
{
timer = new Timer((o) =>
{
CLLocation location = locationManager.Location;
Nmea nmea = new IOSNmea(location);
Gprmc gprmc = new Gprmc();
gprmc.url = this.Url;
gprmc.Id = this.DeviceId;
gprmc.GprmcString = nmea.ToString();
}, null, 0, UpdateInterval * 1000);
});
App.Database.SaveItemAsync(new TodoItem() { key = LOCATOR_SERVICE_ID, value = taskId.ToString() });
}
}
Однако, похоже, что он не вызывает код внутри обратного вызова таймера. Я пытался установить точку останова, но она никогда не вызывается. Что-то явно не так с моим кодом? Спасибо за любую помощь.