Завершение работы фонового приложения Xamarin iOS

#c# #ios #xamarin #backgrounding

#c# #iOS #xamarin #фоновое

Вопрос:

В настоящее время я разрабатываю приложение с таймером для Android и iOS. На данный момент меня действительно больше волнует iOS, и даже после того, как я следил за документацией Xamarin по фоновой версии, используя вызовы центра обмена сообщениями для класса AppDelegate.cs, а затем запустил фоновую задачу с кодом, специфичным для платформы, мое приложение все еще завершается.

Есть ли какой-либо способ поместить приложение iOS в качестве службы переднего плана, например, на Android. Или фоновая служба по-прежнему подходит? Я пытаюсь разрешить пользователю устанавливать таймер на 23 часа вперед и показывать обратный отсчет.

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

1. В iOS нет прямого эквивалента постоянно работающей службы переднего плана Android. iOS позволяет только определенным типам «возможностей» приложений непрерывно работать в фоновом режиме, то есть аудиоплееру, трекеру местоположения и т.д… В iOS 13 было добавлено BGTaskScheduler для выполнения таких действий, как обработка фотографий и пометка объектов в них (обучение ML и / или обработка), очистка базы данных и т.д. … Через определенные промежутки времени, пока телефон заряжается, у вас есть (без учета) доступ к сети Wi-Fi и т.д. Вы можете использовать EventKit для создания будущих событий календаря и напоминания, но не для непрерывного фонового процесса.

Ответ №1:

Для тех, кому интересно, другая стратегия, которую я нашел, заключалась в том, чтобы просто отключить уведомление, независимо от того, запущено приложение или нет. Тогда вы можете просто обрабатывать сохранение вместо того, чтобы пытаться заставить приложение продолжать работать!

Всем удачи!