2012-03-07 17 views
8

Estoy utilizando pubnub como canal de publicación/suscripción entre una aplicación de Android y un servidor. Actualmente estoy pensando en cómo implementaré esto.Mejores prácticas para pubnub en android

Estoy usando la biblioteca provista para android (https://github.com/pubnub/pubnub-api/tree/master/android) pero creo que habrá algunos problemas con el ciclo de vida de la aplicación si la uso como ahora. (Corríjanme si me equivoco)

Estaba pensando en su aplicación como un servicio

lo que quiero

  • El servicio tiene que seguir corriendo hasta una hora (negociable) después el último uso de la aplicación. Eso es porque queremos recibir notificaciones cuando llega un mensaje, pero la aplicación no es la que se usa actualmente.

  • ¿Cómo detengo el servicio después de una hora de inactividad de la aplicación? Probablemente Android lo matará, pero quiero un poco de control.

  • El Servicio debe ser capaz de activar la aplicación para cambiar su interfaz cuando entran mensajes específicos (estaba pensando en enviar intenciones del servicio cuando recibimos un mensaje pubnub?), Pubnub enviará datos al servicio, entonces necesito una manera de pasar esta información a la aplicación (probablemente la guarde en un paquete en la intención?)

  • Necesito escuchar múltiples canales pubnub (máximo 2 al mismo tiempo), creo que lo haré tiene que hacer esto en varias instancias de este servicio?

creo que voy a hacerlo de esta manera:

  • crear un servicio que se inicia cuando se inicia la aplicación

  • Deje que el servicio de escucha a un canal PubNub

  • Cuando llega un mensaje, envíe un intento y use los filtros de intención

  • aplicar broadcasthandlers para escuchar a estos intentos internos

Es esta la forma correcta de hacer esto? alguna indirecta?

Respuesta

10

Tiene una excelente serie de preguntas y puntos detallados de los que hablaré en esta respuesta. Está utilizando Android y le interesan las convenciones y las mejores prácticas para los escenarios PubNub Publish/Subscribe.

Su caso de uso es muy común y las mejores formas de crear aplicaciones siempre varían dependiendo de las necesidades de la aplicación. Sin embargo, definitivamente tienes la idea correcta y has hecho todas las preguntas correctas. Solo necesitaba un código de muestra y una dirección para comenzar a implementar los detalles de las necesidades de su aplicación. Para definir sus necesidades en una lista:

  • Conectar/Desconectar Capacidad.
  • Servicio en segundo plano siempre activo que puede Enviar/Recibir datos y notificar a otras aplicaciones a través de Intentos de Android.
  • Conectando a múltiples canales PubNub al mismo tiempo.

Así que para empezar yo le proporcionará enlaces directos a algunos ejemplos y métodos:

En cuanto a sus pensamientos - Este ES la forma correcta de hacerlo:

  • crear un servicio que se inicia cuando se inicia la aplicación
  • Deje el Servicio escuchar un canal PubNub.
  • Cuando llega un mensaje, envíe un intento y use los filtros de intención.
  • Implemente BroadcastHandlers para escuchar estos intentos internos.
+1

Los enlaces están rotos. ¿Sabes si esos proyectos todavía están disponibles? –

+1

Lo encontré en github !: https://github.com/pubnub/pubnub-api/tree/0dfd8028b803332f5641adc909b1a26f87bd7ff1/android/PubnubAndroid – Pipeline

+0

El servicio que se activa cada 5 minutos para garantizar que el servicio se mantenga activo, ¿esto no consume la batería? ? ¿Esto es lo que sucede con otras aplicaciones de chat como WhatsApp? –