2011-10-26 11 views
15

Sono confuso su quale sia il modo migliore per sincronizzare più tabelle nella mia applicazione.Confuso sulla sincronizzazione di più tabelle con adattatore di sincronizzazione e provider di contenuti

Ho un fornitore di contenuti e intendo disporre di più tabelle (eventi, utenti, ecc.). Ho anche un server di riposo con cui l'app deve comunicare. Mi chiedo quale sia la pratica migliore per gestire più connessioni (put, get, post e delete) per ciascuna delle tabelle. Hanno anche relazioni, come un utente può partecipare ad un evento, ma anche essere il proprietario dell'evento. Quindi, se ho creato un utente e un evento appartenente a quell'utente, posso caricare l'utente, recuperare informazioni dal server sull'utente, caricare l'evento con le informazioni sull'utente, recuperare le informazioni e aggiornare la utente con le nuove informazioni sull'evento.

Qual è il modo migliore per risolvere questi problemi? Devo creare un metodo (http://example.com/sync) che aggrega tutti i dati che devono essere sincronizzati? O dovrei semplicemente attenermi, a volte ~ 15-20 richieste?

+0

[Questo può essere di aiuto] (http://stackoverflow.com/questions/3814005/best-practices-for-exposing-multiple-tables-using-content-providers-in-android) – Reno

+0

Questo non risponde esattamente alla mia domanda. Il link che hai condiviso (grazie) riguarda l'esposizione del tuo fornitore di contenuti al resto del sistema Android, internamente. La mia domanda riguarda più la sincronizzazione dei dati esternamente e la modalità di connessione più efficiente al server per trasmettere/ricevere dati. – jonepatr

+0

Sì, lo so, scusa se non ho lavorato con SyncAdapters per niente, risponderò alla tua domanda. – Reno

risposta

6

Ti consiglio di guardare il video Google I/O 2010 - Android REST client applications. È una fantastica introduzione ad alcuni dei concetti e dei modelli consigliati per la scrittura di applicazioni di sincronizzazione del design.

Ho trovato personalmente le risposte alla maggior parte delle mie domande.

Anche guardare this presentation. Insieme a questa presentazione e all'adattatore dell'adattatore di sincronizzazione fornito con l'SDK, il seguente elenco dovrebbe fornire ampie munizioni per ottenere un adattatore di sincronizzazione attivo e funzionante abbastanza rapidamente.

2

Tutto dipende dalla quantità di dati che si desidera sincronizzare.

Se sono solo dati di testo, e non molto, è necessario sincronizzarli tutti in una volta. Consiglierei di codificare tutto su json, comprimendolo e inviandolo al server (dove decomprimeresti, analizzeresti e salverai). Json è leggero e facile da comporre su androi, oltre ad analizzare su quasi tutti i tipi di server.

Se si desidera sincronizzare le immagini, è preferibile sincronizzarle una alla volta, per assicurarsi di avere un parziale progresso salvato nel caso in cui la connessione diminuisca.

7

Evernote ha risolto un problema simile con il loro protocollo EDAM proprietario. Vale la pena esaminare.

Evernote EDAM

Problemi correlati