У Android есть Сервисы, но есть ли аналог или способ реализовать подобную функциональность в iOS? - PullRequest
1 голос
/ 08 марта 2011

В моем приложении для Android я могу легко создать объект Service, который может работать в фоновом режиме для выполнения произвольных процедур. В моем случае у меня есть Служба, которая поддерживает соединение с сервером и при получении сообщений уведомляет пользователя. Эта служба включается только тогда, когда конкретное действие входит в цикл onPause или onStop, и отключается при возобновлении действия

Есть ли способ сделать это с iOS? Я осмотрелся и только наткнулся на эту страницу на сайте разработчиков Apple:

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

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

Ответы [ 2 ]

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

Apple делает то, о чем вы говорите, - это использовать службу push-уведомлений. Вообще говоря, в 4.x + у вас есть Удаленные уведомления и локальные уведомления . Вам не нужно идти прямо, Urban Airship предлагает вариант веб-сервиса, если вам не нравится взламывать необработанные потоки TCP.

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

Это обман, но вы можете зарегистрировать свое приложение для обновлений местоположения, используя свойство Info.plist UIBackgroundModes и, когда вы получаете обновление местоположения, «точно так же случается, что в это время также проверяются новые сообщения». По сути это дублирование вашего кода опроса сообщений в событии изменения местоположения.

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

Что касается запуска пользовательского сервиса в фоновом режиме, вы не можете, по крайней мере, не более 10 минут, если ваш фоновый процесс превышает 10 минут, ваше приложение будет убито.

Если вы хотите выполнять последовательную фоновую обработку в iOS, вы должны использовать один из предоставленных API многозадачности, которые подробно описаны в предоставленной вами ссылке

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