Продолжайте зацикливать HTTP-запрос асинхронно - PullRequest
0 голосов
/ 29 марта 2011

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

Прежде чем перейти к коду, мне интересно, какая архитектура будет лучшей.

Я планирую иметь следующее:

  1. NSTimer в приложении Delegate didFinishLaunching
  2. NSTimer несколько раз запускает экземпляр, который использует ASIHTTPRequest для запроса к серверу
  3. Если новый запрос запущен, а предыдущий не завершен, предыдущий отменяется

У меня есть несколько вопросов по этому поводу:

  • По вашему мнению, это подходящая архитектура?
  • Будет ли трудно продолжать цикл после того, как приложение будет работать в фоновом режиме? (Я не очень хорошо знаю, как это сделать, но я читаю многозадачность / руководство по IPhone)
  • Должен ли я создать специальный поток для всех этих целей? а почему?

Карим

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Пользователь не использует ваш фид, если приложение является фоновым. Период.

Однако вы можете вносить (довольно часто и ненавязчиво, если хотите) важные изменения в них, используя push-уведомления . Вы можете отображать значки, уведомления и т. Д.

Если ваш пользователь снова откроет приложение, вы можете просто получить канал. Если ваш канал быстрый (и так должно быть), пользователь вряд ли заметит.

Я не вижу необходимости в постоянном фоновом опросе. Все можно легко решить с помощью небольшого начала; -)

ОБНОВЛЕНИЕ: ответить на ваш вопрос; Ваш подход будет работать максимум 10 минут (вы можете запросить у системы некоторое время). После этих 10 минут у вас будет план B (который, на мой взгляд, должен быть вашим планом A).

0 голосов
/ 29 марта 2011

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

Но я не думаю, что вы сможете запускать http-запросы для обновления данных, используемых вашим приложением.Возможно, не стоит постоянно обновлять через http, так как это может привести к потере заряда батареи.

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