Hola a todos, actualmente estoy intentando crearme un chat para dispositivos mobiles. Pero también la duda que tengo se extiende a chat creados en java, c#, para desarrollo web, etc. Voy a intentar explicar lo mas claro posible. Me tiene un poco desesperado esta duda. Supongamos por ejemplo en el chat de skype para mobiles los mensajes que se envian a otro contacto se muestran todos los mensajes que se enviaron los dos contactos. Aqui me surje la duda de como se hace para que no ocupe tanta memoria. Porque pensando logicamente no creo que todos los mensajes esten cargados al mismo tiempo en la memoria porque ocuparia bastante memoria. Lo mismo ocurre cuando queremos ver en el historial, se muestran por ejemplo 5 mensajes en la pantalla y si queremos ver mas apretamos un boton para que nos muestre por ejemplo unos 6 mensajes mas y asi sucesivamente. Sin embargo los 5+6=11 mensajes estaran cargados en memoria? o es que los 5 primeros se van al almacenamiento interno del mobil ( seria como el disco rigido del mobil o una tarjeta SD externa). O bien tomo otro ejemplo, que seguro lo conocen. El chat de facebook y su historial. En el chat de facebook cuando escribimos una cierta cantidad de mensajes y queremos volver mas arriba no nos deja subir y ahi pienso que se muestra una cantidad cierta de mensajes porque los demas anteriores no los podemos ver. Para verlos todos hay que ir al historial. Ahora bien, si nos vamos al historial, a primera vista se muestra por decir un número 10 mensajes, queremos ver más (el scroll bar dice que hay mas mensajes) y entonces subimos hacia arriba y dice que hay 2500 mensajes y que los esta cargando, y en ese momento carga por decir 12 mensajes nuevos y asi sucesivamente. Pero si bajamos hacia abajo vemos que tenemos cargado los 10+12=22 mensajes que fuimos viendo y ya no dice que esta cargando. Esto da a entender que estan cargados en memoria supuestamente.
En conclusión como se hace para que no se sobrecarge la memoria en un chat con los mensajes. Hay que guardar los mensajes en el disco (o tarjeta externa SD en caso de mobil) para que lo vayamos recuperando a medida que lo solicite el usuario? y los que ya leyo y quiere leer otros , los volvemos a disco y le mostramos lo que el solicito al ultimo en la interface?
Espero haber sido lo mas claro posible. Cualquier sugerencia me sera de mucha ayuda. Algunas recomendaciones o recursos que pueda usar.
Gracias.
Saludos.