Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 18/09/13, 06:44:03
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
consulta servicio web

Saludos gente , queria hacer una consulta sobre una app que tengo relacionada con un foro de phpb3 , esta aplicación para actualizar datos hace consultas a unos php que hice expresamente cada segundo , esto , me da la impresión que supone un coste energético de batería alto para el dispositivo y me gustaría saber de otras opciones para poder hacerlo sin que sea el dispositivo el que realice todo el trabajo.

He leído algo sobre los servicios web y notificaciones push , porque mi app lo que hace es notificar según usuario cuando hay mensajes nuevos y demás... , yo puedo implementar esto en un foro de estas características , haciendo que tenga acceso a la base de datos del foro?

gracias.

Última edición por rafaxplayer Día 18/09/13 a las 19:42:58.
Responder Con Cita


  #2  
Viejo 19/09/13, 11:39:36
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Alguien sabe del tema?
Responder Con Cita
  #3  
Viejo 19/09/13, 12:00:58
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Abrir una conexión nueva cada segundo no solo fríe la batería sino probablemente el foro como tengas muchos usuarios.

La técnica habitual es dejar una conexión abierta, enviando algún dato de vez en cuando para que no se cierre, y dejar al servidor que sea el que envíe la información cuando haga falta.

Eso es lo que hace Google con su servicio de mensajería GCM (Google Cloud Messaging), tiene una conexión abierta a sus servidores todo el tiempo sin apenas tráfico, salvo cuando hay que notificar algún evento.

Podrías integrar GCM con el foro y tu app, dado que los usuarios ya están registrados en la base de datos solo tendrías que añadir el identificador de GCM del usuario, para que cuando haya que notificar algo puedas enviar la notificación.

http://developer.android.com/google/gcm/index.html

La notificación puede ser simplemente un evento que indique a la app que hay novedades, y ya tu app se actualice como siempre estableciendo la conexión al foro.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #4  
Viejo 19/09/13, 14:40:18
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
ok, si eso estoy barajando implementar GCM , lo que mas duda me genera es como integrarlo a nivel servidor en mi foro , he leído por hay ejemplos que escriben una app en asp.net y demás , necesito un norte en este sentido , a nivel dispositivo lo veo todo mas claro... gracias.
Responder Con Cita
  #5  
Viejo 19/09/13, 14:52:49
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

A grandes rasgos, el servidor tiene que saber cuál es el identificador de GCM del usuario al que quieres notificar (así si le llega un mensaje del foro, que pueda consultar en la base de datos a quién enviar la notificación). Conocido el identificador, simplemente abres una conexión con el API de GCM (HTTPS), pasas los parámetros de autenticación necesarios, el identificador, el cuerpo de la notificación y ya está, GCM se encarga de la entrega y almacenamiento en caso necesario.

Aquí discuten cómo hacerlo en PHP: http://stackoverflow.com/questions/1...loud-messaging
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #6  
Viejo 19/09/13, 19:45:56
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
aja , solo una cosa mas , como seria si por ejemplo tengo 1000 dispositivos con usuarios registrados en la base , saber si tienen mensajes nuevos es una consulta php por usuario , debería hacerla cada poco tiempo si quiero que no sea muy retardada la información, como harías esto? un temporizador que haga consultas de todos los usuarios para saber si tienen post nuevos desde su ultima visita? esto a nivel servidor tambien seria costoso no? un temporizador funcionando siempre...
Responder Con Cita
  #7  
Viejo 19/09/13, 19:56:29
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

La idea de usar notificaciones es no andar pidiendo actualizaciones al servidor y que sea él mismo el que notifique. Cualquier sistema de foros permite notificar por email, sería añadir la funcionalidad para notificar por GCM, ya sea como plugin, usando el API que tenga el sistema de foros o modificando su código.

Si no puedes tocar el código del servidor es un problema, ahí sí tendrías que consultar periódicamente los cambios, aunque no desde la app sino de un script en el servidor, que ya sería un progreso respecto del caso inicial.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 19:26:02 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /