Как запускать процесс ~ 30 сек каждый час в фоновом режиме (приложение для iphone) - PullRequest
5 голосов
/ 03 сентября 2011

У меня есть приложение для iphone с 30-секундным процессом, выполняющим сетевой ввод-вывод.По сути, пока приложение находится в фоновом режиме, я хочу, чтобы этот процесс запускался каждый час (фактически один раз в день, но если он не работает, я хочу, чтобы он запускался через час).

С фономособенности ios 4, возможно ли это?Если так, то как?С какими ограничениями я столкнусь?

Большое спасибо!

Ответы [ 3 ]

6 голосов
/ 03 сентября 2011

Взгляните на документацию Apple о запуске кода в фоновом режиме.

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

Существует несколько различных способов решения фоновых задач.Единственными приложениями, которые могут иметь полностью фоновые процессы, являются приложения «аудио», «voip» и «местоположение», и это необходимо объявить в Info.plist.

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

Локальные уведомления будут только предлагать пользователюоткройте приложение - вы действительно хотите, чтобы каждые 30 секунд на телефоне появлялось оповещение?

1 голос
/ 04 сентября 2011

Я проводил какое-то подобное исследование, взгляните на этот SO-ответ на случай, если вам не удалось найти его раньше. Такие приложения, как DataMan или Data Usage, должны иметь какое-то периодическое выполнение кода в фоновом режиме, поэтому я не уверен на 100%, что то, что вы просите, невозможно ...

0 голосов
/ 03 сентября 2011

Я верю, что Использование локальных уведомлений поможет .... проверьте следующее ....

  1. http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1
  1. Приложение может создавать и планировать локальное уведомление, а затем операционная система доставляет его в запланированную дату и время. Если он доставляет его, когда приложение не активно на переднем плане, он отображает предупреждение, отмечает значок приложения или воспроизводит звук - все, что указано в объекте UILocalNotification. Если приложение работает на переднем плане, нет оповещений, значков или звука; вместо этого вызывается application: didReceiveLocalNotification: метод, если его реализует делегат.

  2. Делегат может проверить свойства уведомления и, если уведомление включает в себя пользовательские данные в своем словаре userInfo, он может получить доступ к этим данным и обработать их соответствующим образом. С другой стороны, если локальное уведомление обозначает только значок приложения, а пользователь в ответ запускает приложение, вызывается application: didFinishLaunchingWithOptions: метод, но объект UILocalNotification не включается в словарь параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...