0

Я знаю, что этот вопрос может быть немного общим и снова спросил, но я не могу найти точную информацию ... так:iphone: справочная информация приложения синхронизация вебсервис

Можно ли иметь какую-нить работать, когда приложение находится в фоновом режиме, поэтому я могу выполнить базовую синхронизацию с моим веб-сервисом?

Приложение находится в фоновом режиме: я имею в виду, что пользователь нажал кнопку «Домой» или переключился на другое приложение. Основная синхронизация: загрузка и загрузка фотографий с помощью AFNetworking. Я знаю, что у него есть метод для продолжения HTTPRequest, когда приложение находится в фоновом режиме, но это не моя точка.

Моей целью было бы сделать какой-то менеджер синхронизации, прочитав список фотографий для обновления, созданных во время использования пользователем приложения, и выполните эти изменения.

Я знаю, что менеджер может быть убит ОС, но поскольку мой сервер использует атомные передачи, это не проблема. Мне просто нужен способ перезапустить его ... Push?

Я думаю, что такие приложения, как Google Latitude или Mail, и такие приложения используют то, что я ищу, но я не могу найти в нем каких-либо релевантных сведений. И использование iOS5 не проблема, но ожидание iOS6 не будет решением.

Благодарим за ответы!

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

ответ

0

Найденный!

Использование Suhail Patel «ы link on Apple's Multitasking Guide Я добавил voip тег в UIBackgroundModes в Info.plist и использовать setKeepAliveTimeout:handler: метод UIApplication возобновить его, если это необходимо после того, как приложение будет спать.

Я надеюсь, что это поможет многим из вас!

Конечно, это приложение не будет разрешено находиться в App Store, но для развития дома это, на мой взгляд, лучший способ сделать это.

Спасибо всем за то, что вы указали мне правильное направление!

0

Почтовый клиент Apple имеет фоновый демон, который поддерживает его, но вы не можете иметь это с помощью собственных приложений , Когда приложение входит в фоновое состояние, оно должно остановить его операции. Вы можете запросить еще немного времени, когда вы хотите завершить любые передачи или записи на диск (см. Раздел «Выполнение задачи конечной длины» в разделе «Фон» на странице Apple's Multitasking Guide)

Google Latitude имеет события, созданные на основе местоположения. Это особый тип фоновой информации, представленный Apple для определенных типов приложений (см. Раздел «Реализация долговременных фоновых задач» по адресу Apple's Multitasking Guide), но это не может использоваться для синхронизации HTTP. Его можно использовать только для аудио, местоположения, voip, контента newstand, bluetooth и внешних аппаратных вложений.

Push не похоже на решение, потому что оно генерирует предупреждение. Он не вызывает никаких действий до тех пор, пока пользователь не инициирует открытие уведомления.

+0

Хорошо, это нечестно, даже если я понимаю причину, почему они это сделали. Но тогда как могло работать приложение Sparrow? Ой и снова, могу ли я забыть об этих ограничениях для внутреннего развертывания? Я действительно имею в виду в доме, без джейлбрейка, никаких специальных действий. Спасибо – dvkch

+0

Воробей также не имеет фонового режима по этой причине. Однако, поскольку вы не развертываете в хранилище приложений, вы можете замаскировать его как приложение VOIP и использовать соответствующие методы сокетов? (это то, что попробовал Спарроу, но был отклонен из App Store) http://sparrowmailapp.com/push.php –

+0

К сожалению, я искал эту страницу, но не нашел ее ... Является ли это переодеванием как VOIP приложение, которое легко? Разве я не могу создать демона или что-то еще? Цель состоит в том, чтобы делать фотографии в определенных местах, а затем по пути, которые он загружает. Может быть, геосервис может помочь? Еще раз спасибо – dvkch

0

Вы хотите прочитать Tech Note 2277 Networking and Multitasking.

В основном у вас есть несколько вариантов:

Если вы можете убедить Apple, что ваше приложение является приложением VoIP, то вы можете зарегистрировать сокет VoIP и OS возобновит фоновое приложение всякий раз, когда есть деятельность на сокет ,

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

Mail - это специальное приложение с привилегиями, которые вы не получаете.

Приложения, такие как Latitude, обычно регистрируются для обновлений местоположения, особенно для разбудки при существенных изменениях геопозиции. Приложения, записывающие GPS-треки, выполняют аналогичные действия.

+0

Отличный ответ тоже. Но опять же, поскольку я занимаюсь развертыванием дома, что означает, что яблоко не может сказать мне «нет», есть ли у меня новые возможности? – dvkch

+0

Возможно, я хочу использовать события GPS, но как можно было бы инициировать некоторые действия в моем приложении на основе события геолокации? Я не могу найти эту конкретную информацию, это набор SDK doc. Извините, если это вопрос новичков ... – dvkch