Таймер фоновой обработки в Xamarin forms ios

#xamarin #xamarin.forms

#xamarin #xamarin.forms

Вопрос:

Я хочу, чтобы таймер продолжался, когда приложение переводится в фоновый режим. Кажется, что таймер приостанавливается и возобновляется, когда приложение возвращается на исходную площадку.

         _timer = new System.Timers.Timer();
        _timer.Interval = 30000;
        _timer.Elapsed  = OnTimedEvent;
        _timer.Enabled = true;
    

    private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e)
    {
        AutoSaveMethod();
    }
 

Комментарии:

1. Это не совсем возможно при использовании .net-таймеров. Приложения имеют совершенно особое (специфичное для ОС) фоновое поведение. Есть некоторые библиотеки, такие как блестящие фоновые задания allancritchie.net/posts/shinyjobs это позволит вам реализовать его более легко. Но вам нужно понимать, как работает фоновая обработка на мобильных платформах, чтобы понять, чего вы можете ожидать. Спойлер: вы не можете гарантировать выполнение в фоновом режиме. (прочитайте некоторые документы ios android об этом)

2. iOS по умолчанию не позволяет приложению работать в фоновом режиме. Смотрите документ о ios-backgrounding-techniques .