Ich werde versuchen, alle Ihre Fragen zu beantworten, indem ich die größere Frage beantworte: Wie kann ich Daten zwischen einem Webserver und einer Android-App synchronisieren?
Das Synchronisieren von Daten zwischen Ihrem Webserver und einer Android-App erfordert einige verschiedene Komponenten auf Ihrem Android-Gerät.
Dauerspeicher:
Auf diese Weise speichert Ihr Telefon tatsächlich die Daten, die es vom Webserver empfängt. Eine mögliche Methode, um dies zu erreichen, ist das Schreiben eines eigenen benutzerdefinierten ContentProviders, der von einer Sqlite-Datenbank unterstützt wird. Ein anständiges Tutorial für einen Inhaltsanbieter finden Sie hier: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Ein ContentProvider definiert eine konsistente Schnittstelle für die Interaktion mit Ihren gespeicherten Daten. Auf Wunsch können auch andere Anwendungen mit Ihren Daten interagieren. Hinter Ihrem ContentProvider kann sich eine SQLite-Datenbank, ein Cache oder ein beliebiger Speichermechanismus befinden.
Obwohl ich sicherlich empfehlen würde, einen ContentProvider mit einer Sqlite-Datenbank zu verwenden, können Sie jeden gewünschten Java-basierten Speichermechanismus verwenden.
Datenaustauschformat:
In diesem Format senden Sie die Daten zwischen Ihrem Webserver und Ihrer Android-App. Die beiden derzeit beliebtesten Formate sind XML und JSON. Bei der Auswahl Ihres Formats sollten Sie überlegen, welche Serialisierungsbibliotheken verfügbar sind. Ich weiß sofort , dass es eine fantastische Bibliothek für die JSON-Serialisierung gibt, die gson heißt: https://github.com/google/gson , obwohl ich sicher bin, dass es ähnliche Bibliotheken für XML gibt.
Synchronisierungsdienst
Sie möchten eine Art asynchrone Aufgabe, mit der Sie neue Daten von Ihrem Server abrufen und den mobilen Inhalt aktualisieren können, um den Inhalt des Servers wiederzugeben. Sie möchten den Server auch benachrichtigen, wenn Sie lokale Änderungen am Inhalt vornehmen und diese Änderungen widerspiegeln möchten. Android bietet das SyncAdapter- Muster, um dieses Muster einfach zu lösen. Sie müssen Benutzerkonten registrieren, und dann führt Android viel Magie für Sie aus und ermöglicht Ihnen die automatische Synchronisierung. Hier ist ein gutes Tutorial: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
Wie Sie feststellen, ob die Datensätze identisch sind, erstellen Sie normalerweise Elemente mit einer eindeutigen ID, die Sie sowohl auf dem Android-Gerät als auch auf dem Server speichern. Sie können dies verwenden, um sicherzustellen, dass Sie sich auf dieselbe Referenz beziehen. Darüber hinaus können Sie Spaltenattribute wie "updated_at" speichern, um sicherzustellen, dass Sie immer die aktuellsten Daten erhalten oder nicht versehentlich über neu geschriebene Daten schreiben.