2012-05-20 3 views
14

Как сохранить приложение в фоновом режиме? Должен ли я сделать джейлбрейк для своего iPhone? Мне просто нужно это приложение, чтобы проверить что-то из Интернета каждый интервал времени и уведомлять, когда это необходимо, для моего собственного использования.iOS: приложение работает в фоновом режиме

+0

Привет, Денис, надеюсь, у вас есть свой ответ. Если да, то можете ли вы, пожалуйста, пометить свой ответ как правдивый и голосующий ... – Mrunal

ответ

17

Да, не нужно делать джейлбрейк. Ознакомьтесь с разделом «Реализация долгосрочных фоновых задач» этого документа с Apple.

С док Apple: Декларирование вашего приложения Поддерживаемые фоновые задачи

Поддержка некоторых типов исполнения фона должны быть объявлены заранее приложением, которое использует их. Приложение объявляет поддержку службы, используя свой файл Info.plist. Добавьте ключ UIBackgroundModes в файл Info.plist и установите его значение в массив, содержащий одну или несколько следующих строк: (см. Документ Apple из ссылки, упомянутой выше.)

+4

Будет ли этот метод работать 24 x 7 - навсегда? – takrishna

+1

@takrishna, Если вы пишете это приложение для своего собственного использования, установите значение UIBackgroundModes «voip» («Голос по IP»). Это самый простой тип приложения, чтобы поддерживать его навсегда в фоновом режиме. (Но не отправляйте его в магазин приложений, если это действительно не приложение VOIP.) – ToolmakerSteve

+0

Для приложения для магазина приложений, если у вас нет сервера для периодической отправки «Удаленных уведомлений» на ваш телефон, ваш единственный вариант «Фоновая выборка». http://stackoverflow.com/a/37311611/199364 – ToolmakerSteve

-1

Вы уже можете сделать это в applicationDidEnterBackground Метод

+0

Я думал, что приложение будет автоматически прекращено через некоторое время, не так ли? Простите мое невежество, если я ошибаюсь. Я очень новичок в программировании на iOS. – Dennis

+0

, если iOS не нуждается в этой памяти для другого приложения, это будет не так, и пока вы делаете что-то в фоновом режиме – user1320885

+5

№ Приложения не могут работать в фоновом режиме более 10 минут, за исключением нескольких определенных ситуаций (VOIP, воспроизведение аудио и т. д.) – Greg

5

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

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html

+0

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

3

Я знаю, что это не ответ на ваш вопрос , но я думаю, что это решение.

Это предполагает, что вы пытаетесь что-то проверить или получить данные из Интернета на регулярной основе?

Создайте услугу, которая проверяет Интернет на каждый интервал времени, независимо от того, что вы хотите знать, и создайте push-уведомление, чтобы предупредить вас об этом, если сервер не работает или что-то, что вы пытаетесь контролировать, изменилось государство. Просто идея.

1

Да, вы можете сделать что-то подобное. Для этого вам нужно установить запись в info.plist, чтобы сообщить os, что мое приложение будет работать в фоновом режиме. Я сделал это, пока я хотел передать местоположение пользователя после определенной отметки времени на сервер. Для этого я установил «Требуемые фоновые режимы» для «Регистр приложений для обновлений местоположения».

Вы можете написать обработчик типа UIBackgroundTaskIdentifier.

Смежные вопросы