Esperemos que esta pregunta no sea demasiado amplia ni demasiado pedir …
Estoy creando una aplicación de Android para mi oficina. La aplicación se utiliza para enviar alertas de mensajes (como una clase de objeto “mensaje” personalizada) a todos los usuarios con la aplicación (solo en mi oficina). Una vez que se recibe el mensaje, todos los nombres de los destinatarios se enumeran en la parte inferior con un icono de estado que muestra su respuesta al mensaje (pulgares arriba o abajo básicamente).
Tengo un servidor Node / Express que se utiliza para rastrear, almacenar y distribuir los mensajes y registrar su historial. Cuando un usuario envía un mensaje de alerta, irá al servidor de Nodos que se encargará de la distribución.
- ¿Cómo obtengo un JSONArray anidado en un Android?
- ¿Qué sería mejor para el desarrollo de aplicaciones de Android?
- Python para el desarrollo de aplicaciones de Android, ¿es una buena opción?
- ¿Cuál es la mejor manera de aprender la codificación de aplicaciones de Android al instante?
- ¿Por qué Google prefiere crear IDE de desarrollo de aplicaciones de Android en lugar de IDE preexistentes (Eclipse / IntelliJ), y no construir los suyos desde cero?
Requerimientos de la aplicación
- Es para el personal de emergencia. La aplicación SIEMPRE debe poder recibir una alerta. Si no tienen servicio, está bien, se enviará un SMS como respaldo. Pero todos los teléfonos Android SIEMPRE deben estar escuchando mi servidor Node para actualizaciones.
- La aplicación DEBE iniciarse en el arranque, o al menos un servicio o algo para escuchar al servidor. Esto se basa en el último requisito de que siempre debe estar escuchando al servidor.
- Una vez que se recibe el mensaje, el usuario lo verá en una actividad específica. Esta actividad enumera todos los destinatarios y su estado (pulgares arriba o abajo). Esta pantalla deberá estar conectada al websocket en todo momento y actualizar el estado en tiempo real a medida que los demás usuarios envíen su estado.
Aqui esta mi pregunta
Hay algunas formas que he visto recomendadas, pero no sé cuál usar.
- Cree un servicio en segundo plano (servicio o servicio intente … ¿no tiene idea?) Que se iniciará en el arranque y se conectará al servidor Node. Esto plantea algunas preguntas: a. ¿Está bien tener una conexión de socket TCP como esta en el teléfono 24/7? si. Solo intercambiará datos algunas veces al día. ¿La conexión abierta matará la batería? do. ¿Puedo usar este servicio ‘siempre en ejecución’ para iniciar la actividad de mi aplicación en caso de que el servicio reciba un mensaje del servidor? Además, ¿puedo enviar fácilmente el mensaje del servicio en segundo plano a la aplicación? (No sé enhebrar muy bien … esa es la parte difícil para mí aquí).
- Use GCM para “activar” el teléfono para iniciar la aplicación, y una vez que la aplicación se inicie, use el hilo principal de la interfaz de usuario para crear la conexión con el servidor y desplegar el mensaje que se envió. a. Nunca he usado GCM y solo me enteré ayer. ¿Es este el tipo de cosa para la que se usa? si. Si uso GCM, ¿ todavía necesito crear un servicio en segundo plano ‘siempre en ejecución’ que se inicie en el arranque de todos modos? ¿O GCM tiene algo integrado para escuchar siempre?
No entiendo completamente cómo usar hilos, mi conocimiento de Java está por debajo del promedio (aunque no diría principiante), y esta es mi primera aplicación de Android. La aplicación se ve hermosa y realmente viene genial, pero no sé cómo debo manejar esta red siempre conectada .