Лучшие практики для pubnub на Android - PullRequest
8 голосов
/ 07 марта 2012

Я использую pubnub в качестве канала публикации / подписки между приложением для Android и сервером.В настоящее время я думаю о том, как это реализовать.

Я использую предоставленную библиотеку для Android (https://github.com/pubnub/pubnub-api/tree/master/android), но я думаю, что будут некоторые проблемы с жизненным циклом приложения, если я его используюкак сейчас. (поправьте меня, если я ошибаюсь)

Я думал о реализации этого как услуга

Что я хочу

  • Служба должна продолжать работать в течение часа (по согласованию) после последнего использования приложения, потому что мы хотим получать уведомления при поступлении сообщения, но приложение не является используемым в данный момент приложением.

  • Как я могу остановить службу после одного часа бездействия приложения? Возможно, Android убьет его, но мне нужен контроль.

  • Служба должна быть в состояниичтобы заставить приложение изменять свой интерфейс при поступлении определенных сообщений (я думал об отправке намерений из службы, когда мы получаем сообщение pubnub?), pubnub будет отправлять данные в службу, поэтому мне нужен способ передать эти данные вприложение(возможно, сохраните его в Bundle в намерении?)

  • Мне нужно прослушать несколько каналов pubnub (максимум 2 одновременно), думаю, мне придется это сделатьв нескольких случаях этой службы?

Я думаю, я сделаю это так:

  • Создать службу, которая запускается при запуске приложения

  • Позвольте службе прослушивать канал pubnub

  • Когда приходит сообщение, отправьте намерение и используйте фильтры намерений

  • Реализация обработчиков трансляции для прослушивания этих внутренних намерений

Это правильный способ сделать это?есть намеки?

1 Ответ

10 голосов
/ 08 марта 2012

У вас есть отличный набор вопросов и подробных пунктов, о которых я расскажу в этом ответе Вы используете Android, и вас интересуют соглашения и лучшие практики для сценариев публикации / подписки PubNub.

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

  • Возможность подключения / отключения.
  • Всегда в фоновом режиме Служба, которая может отправлять / получать данные и уведомлять другие приложения через Android Intents.
  • Подключение к нескольким каналам PubNub одновременно.

Итак, для начала я предоставлю вам прямые ссылки на некоторые примеры и методы:

Относительно ваших мыслей - это IS правильный способ сделать это:

  • Создание службы, которая запускается при запуске приложения
  • Пусть служба прослушивает канал PubNub.
  • Когда приходит сообщение, отправьте намерение и используйте фильтры намерений.
  • Реализация BroadcastHandlers для прослушивания этих внутренних намерений.
...