Регистрация приложений Xamarin.iOS для запуска в фоновом режиме

Регистрация отдельных задач для фоновых привилегий работает для некоторых приложений, но что происходит, если приложение постоянно вызывается для выполнения важных, длительных задач, таких как получение направлений для пользователя через GPS? Вместо этого такие приложения должны быть зарегистрированы как известные фоновые приложения.

Регистрация приложения сигналов в iOS о том, что приложению должны быть предоставлены специальные привилегии, необходимые для выполнения задач в фоновом режиме.

Категории регистрации приложений

Зарегистрированные приложения могут быть разделены на несколько категорий:

  • Аудио — музыкальные проигрыватели и другие приложения, которые работают с звуковым содержимым, могут быть зарегистрированы для продолжения воспроизведения звука, даже если приложение больше не находится на переднем плане. Если приложение в этой категории пытается выполнить что-либо, кроме воспроизведения звука или скачивания во время фонового режима, iOS завершит работу.
  • VoIP — приложения Протокола VoIP (VoIP ) получают те же привилегии, предоставляемые звуковым приложениям для обработки звука в фоновом режиме. Они также могут реагировать по мере необходимости на службы VoIP, которые позволяют им работать, чтобы сохранить свои подключения в живых.
  • Внешние аксессуары и Bluetooth — зарезервированы для приложений, которые должны взаимодействовать с устройствами Bluetooth и другими внешними аппаратными аксессуарами, регистрация в этих категориях позволяет приложению оставаться подключенным к оборудованию.
  • Newsstand — приложение Newsstand может продолжать синхронизировать содержимое в фоновом режиме.
  • Расположение — приложения, использующие данные GPS или сетевого расположения, могут отправлять и получать обновления расположения в фоновом режиме.
  • Получение (iOS 7+) — приложение, зарегистрированное для привилегий фонового получения, может проверка поставщику нового содержимого через регулярные интервалы, предоставляя пользователю обновленный контент при возвращении в приложение.
  • Удаленные уведомления (iOS 7+) — приложения могут регистрироваться для получения уведомлений от поставщика и использовать уведомление для запуска обновления перед открытием приложения. Уведомления могут поступать в виде push-уведомлений или автоматически проснуть приложение.

Приложения можно зарегистрировать, задав свойство "Обязательные фоновые режимы" в списке info.plist приложения. Приложение может регистрироваться в столько категорий, сколько требуется:

Setting the background modes

Пошаговое руководство по регистрации приложения для обновления фонового расположения см. в пошаговом руководстве по фоновому расположению.

Приложение не выполняется в фоновом свойстве

Другое свойство, которое можно задать в Info.plist , — приложение не выполняется в фоновом режиме или UIApplicationExitsOnSuspend свойстве:

Disabling Background Running

Это имеет тот же эффект, что и настройка параметра фонового обновления приложений в iOS 7+, за исключением того, что оно может быть изменено только на стороне разработчика и доступно для iOS 4 и выше. Приложение будет приостановлено сразу после ввода фона и не сможет выполнять обработку.

Используйте это свойство, если приложение не предназначено для обработки фоновой обработки, так как это помогает избежать непредвиденного поведения.

Фоновое получение и удаленные уведомления

Фоновая выборка и удаленные уведомления — это специальные категории регистрации, представленные в iOS 7. Эти категории позволяют приложениям получать новое содержимое от поставщика и обновлять в фоновом режиме. В следующем разделе рассматриваются получение и удаленные уведомления более подробно, а также сведения о расположении в качестве средства обновления приложения в фоновом режиме в iOS 6.