iPhone: работать в фоновом режиме до бесконечности - PullRequest
0 голосов
/ 09 августа 2011

Я ищу способ, чтобы приложение iPhone работало в фоновом режиме бесконечно. Это приложение не будет использовать службы определения местоположения или VoIP, а вместо этого будет выполнять определенную задачу (извините, но я не могу точно сказать, что это за задача). Задача может быть сравнима с проверкой, чтобы увидеть, существует ли файл и затем спит в течение 1 секунды. Для целей этого вопроса задание должно выполняться вечно.

Любая помощь будет оценена. Насколько я могу судить по документации iPhone, то, что я запрашиваю, невозможно, поэтому я довольно озадачен ...

Ответы [ 6 ]

1 голос
/ 09 августа 2011

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

0 голосов
/ 10 августа 2011

Неутешительный вопрос, но я все же отвечаю вам за то, что вы предоставили логику. Хотя это неприемлемо в процессе рассмотрения в магазине приложений.

while (your condition)

{ NSAutoreleasePool *aPool = [[NSAutoreleasePool alloc ] init];

  // do your desired task here

[aPool release] }

Позвоните по этому номеру applicationDidEnterBackground и посмотрите, что происходит на инструментах, чтобы получить хорошее представление о фоновой работе.

Счастливого кодирования!

0 голосов
/ 09 августа 2011

Как уже обсуждалось, настоящая фоновая обработка не будет возможна для ваших требований.

Однако, может быть, вы могли бы использовать фоновые уведомления для достижения ваших целей?

0 голосов
/ 09 августа 2011

Это можно сделать только в взломанной среде.Если это не вариант для вас, то SDK в настоящее время не поддерживает долгосрочную фоновую активность, если она не предназначена для целей аудио, определения местоположения или voip.

0 голосов
/ 09 августа 2011

Многозадачность на iOS описана здесь. http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH5

Допустимые типы многозадачности: audio, location и voip, поэтому кажется, что ваша задача может быть невозможна на iOS.

0 голосов
/ 09 августа 2011

Это невозможно сделать с текущим SDK.Приложения в фоновом режиме могут использовать только определенные службы (аудио, местоположение, ...).

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