Предполагая, что это возможно, я хотел бы, чтобы мое приложение iOS, когда было задумано, опросило сервер (т.е. по существу, загрузило содержимое URL каждые 30 минут и уведомило пользователя, если оно содержит что-то "интересное" ), по существу в аналогично способу использования встроенного почтового клиента, если вы не используете push-уведомления.
Теперь, из моего чтения до сих пор (я опытный программист, но новичок в iOS), я думаю, что могут быть два возможных способа сделать это:
- Способ 1: В applicationDidEnterBackground: запустите фоновый вызов, который выполняет периодический опрос;
- Способ 2. Отправляйте собственное приложение UILocalNotification без видимого текста пользователю, но это просто служит для пробуждения вашего приложения за X минут времени для опроса (а затем отправляет себе другое уведомление для следующего tim и т.д.).
Я вижу в документации Apple Планирование, регистрация и обработка уведомлений, на самом деле у них на самом деле есть пример usign Method 1 (их "чат" "пример, листинг 2-2). Но что удивительно в этом методе, так это то, что он просто сидит в непрерывном цикле, делая опрос, без промежуточного сна; на платформах, с которыми я знаком, это было бы нецелесообразно и сжигало бы CPU.
Итак, мои вопросы по существу: - Возможно ли использовать метод 2 (или должна быть UILocalNotification всегда вызывать видимое предупреждение пользователю, чего я не хочу), и если это так рекомендуемый способ сделать это? - Если способ сделать это - это метод 1, то пример "чата" в Apple в постоянном цикле действительно ОК (например, iOS использует центральный процессор так, чтобы это не было проблемой), и если не так, iOS, чтобы сообщить фоновому процессу "спать в течение X секунд/минут"? И если непрерывная петля Apple по какой-то причине в порядке, каков был бы промежуток времени между опросами?
N.B. Я ценю, что возможность запуска в фоновом режиме вообще является функцией iOS 4. Я не возражаю, если мое приложение будет работать только в iOS 4.