Фоновая работа iOS и XMPPFramework

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

Я просто хочу держать сокет открытым и отображать уведомление о полученном сообщении, если приложение не находится на переднем плане.

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

Можно ли запускать подобный чат-клиент в фоновом режиме в течение длительного периода времени? Что-то похожее на жизненный цикл службы Android?


person Autonomy    schedule 19.04.2012    source источник


Ответы (2)


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

person Francesco    schedule 19.04.2012

Это не так просто, как в Android. Чтобы сохранить заряд батареи, Apple ввела ограничение в 10 минут.

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

person Fab1n    schedule 19.04.2012
comment
Вы хоть представляете, как таким сервисам, как IM+ и Facebook, удается получать длительные уведомления? - person Autonomy; 19.04.2012
comment
Я не думаю, что они делают это с уведомлениями из-за многозадачности. Я думаю, что они просто отправляют вам push-уведомления - person Fab1n; 19.04.2012