iOS Запуск таймера в вашем коде в фоновом режиме

Итак, я читал, что в iOS все таймеры будут останавливаться, когда ваше приложение работает в фоновом режиме. Я также читал, что вы можете запускать задачи в BG, используя beginBackgroundTaskWithExpirationHandler ( вроде так).

Я пытаюсь добиться того, чтобы метод вызывался каждые 3 минуты, а другой - фиксированное количество времени до первого. Мне удалось сделать это в течение одного NSTimer который повторяется таким образом, что позволяет мне сделать это. Он работает нормально, но, очевидно, отключен (или приостановлен), когда приложение находится в фоновом режиме - я могу предположить только из-за причины, описанной выше.

Кто-нибудь знает, есть ли способ запустить таймер или хотя бы позвонить что-нибудь через определенное время, чтобы я мог это сделать?

1 ответ

В основном, если вы хотите продолжать работать в фоновом режиме, вы должны выполнить одно из следующих требований. Из документов Apple:

Реализация долгосрочных фоновых задач

Для задач, для реализации которых требуется больше времени, вы должны запросить определенные разрешения для их запуска в фоновом режиме без их приостановки. В iOS только определенные типы приложений могут работать в фоновом режиме:

  • Приложения, которые воспроизводят звуковой контент для пользователя в фоновом режиме, например приложение музыкального проигрывателя
  • Приложения, которые постоянно информируют пользователей о своем местонахождении, такие как навигационное приложение
  • Приложения, которые поддерживают передачу голоса по Интернет-протоколу (VoIP)
  • Приложения для газетных киосков, которые должны загружать и обрабатывать новый контент
  • Приложения, которые получают регулярные обновления от внешних аксессуаров

Приложения, которые реализуют эти сервисы, должны декларировать сервисы, которые они поддерживают, и использовать системные платформы для реализации соответствующих аспектов этих сервисов. Объявление сервисов позволяет системе узнать, какими сервисами вы пользуетесь, но в некоторых случаях именно системные каркасы фактически предотвращают приостановку работы вашего приложения.

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

Другие вопросы по тегам