2011-10-26 17 views
15

No estoy seguro de cuál es la mejor manera de sincronizar varias tablas en mi aplicación.Confundido acerca de la sincronización de varias tablas con el adaptador de sincronización y el proveedor de contenido

Tengo un proveedor de contenido y tengo la intención de tener varias tablas (eventos, usuarios, etc.). También tengo un servidor de reposo con el que se supone que la aplicación se debe comunicar. Me pregunto cuál es la mejor práctica para manejar múltiples conexiones (poner, obtener, publicar y eliminar) para cada una de las tablas. También tienen relaciones, como un usuario puede asistir a un evento, pero también ser el dueño del evento. Entonces, si he creado un usuario y un evento perteneciente a ese usuario, puedo cargar al usuario, obtener información del servidor sobre el usuario, cargar el evento con la información sobre el usuario, recuperar esa información y luego actualizar la información. usuario con la nueva información del evento.

¿Cuál es la mejor manera de resolver estos problemas? ¿Debo crear un método (http://example.com/sync) que agregue todos los datos que deberían sincronizarse? ¿O debería seguir con, a veces ~ 15-20 solicitudes?

+0

[Esto puede ser de ayuda] (http://stackoverflow.com/questions/3814005/best-practices-for-exposing-multiple-tables-using-content-providers-in-android) – Reno

+0

Eso no responde mi pregunta exactamente. El enlace que compartió (gracias) se trata de exponer internamente a su proveedor de contenido tp al resto del sistema de Android. Mi pregunta es más sobre cómo sincronizar sus datos externamente y cómo hacer la conexión más eficiente al servidor para transmitir/recibir datos. – jonepatr

+0

Sí, lo sé, lo siento, no he trabajado con SyncAdapters para nada, voy a apoyar su pregunta. – Reno

Respuesta

6

Yo recomendaría que miraras Google I/O 2010 - Android REST client applications video. Es una fantástica introducción a algunos de los conceptos y patrones recomendados para escribir bien las aplicaciones de sincronización de diseño.

Personalmente encontré las respuestas a la mayoría de mis preguntas.

También vea this presentation. Junto con esta presentación y la muestra del adaptador de sincronización proporcionada con el SDK, la siguiente lista debe proporcionarle una gran cantidad de municiones para que el adaptador de sincronización funcione con bastante rapidez.

2

Todo depende de la cantidad de datos que desea sincronizar.

Si solo se trata de datos de texto, y no mucho, debe sincronizar todo de una vez. Yo recomendaría codificarlo todo para json, comprimirlo y enviarlo al servidor (donde descomprimirías, analizaría y guardaría). Json es liviano y fácil de componer en androi, además de analizar en casi cualquier tipo de servidor.

Si desea sincronizar imágenes, sería mejor que las sincronizara de a una por vez, para asegurarse de tener un progreso parcial guardado en caso de que se desconecte la conexión.

7

Evernote ha resuelto un problema similar con su protocolo propietario de EDAM. Vale la pena investigar.

Evernote EDAM

Cuestiones relacionadas