Ich versuche, einen Android-To-Do-Client für einen Webdienst mit Offline-Caching und -Synchronisierung zu erstellen.
Der Web-Service gibt Daten im JSON-Format über To-Do-Aufgaben auf dem Server zurück, wenn Sie ihm eine Post-Nachricht senden.
Um eine Aufgabe auf dem Server hinzuzufügen, müssen Sie einen JSON
POST an den Server mit den Aufgabendetails senden, woraufhin Sie eine Aufgabe UUID
zurückgeben.
Ich möchte eine Art Synchronisierung implementieren, damit die Aufgaben, die ich hinzufüge, wenn ich offline bin, an den Server gesendet werden und Daten vom Server mit der App synchronisiert werden (2-Wege-Synchronisierung), wenn Internet verfügbar ist.
Im Moment habe ich eine To-Do-App auf Basis des Content-Providers geschrieben, die nicht mit dem Server kommuniziert. Meine Frage ist, was wäre der beste Weg, um eine solche Funktionalität zu implementieren?
Ich denke, ich muss JSON vom Server holen, es in eine lokale SQLite-DB schieben, Vergleiche durchführen und nicht synchronisierte Elemente finden und sie zum Server schieben. Ich denke, dass ich dies tun kann, indem ich asynchrone Abfragen in meinem ContentProvider hinzufüge (nicht sicher, ob dies der beste Weg ist).
Soll ich meine eigene Implementierung desselben schreiben oder kann ein SyncAdapter
all diese Magie tun? Gibt es noch andere Designparameter, die ich in Betracht ziehen sollte?
Ich denke, was für Ihr Problem optimal wäre, wäre die Verwendung von GCM Push, um nicht synchronisierte Serverdaten auf Ihren Android-Client zu übertragen. Um die SQL-Daten Ihres Kunden zu synchronisieren, würden Sie wissen, was nicht auf dem Server aktualisiert wurde und wann immer das Gerät mit dem Netzwerk verbunden ist, diese Daten an den Server senden. Eine höhere Kommunikationsschicht zwischen Client und Server kann die Entscheidung darüber, was nicht synchronisiert ist, implementieren. Obiges geht davon aus, dass Sie einen eigenen Server haben, mit dem Ihr Client kommunizieren würde.
Wenn Sie nicht den Server besitzen, scheint Ihre Strategie, einen Synchronisationsadapter zu schreiben, gut. Dieser Link soll Ihnen helfen, die Feinheiten von Sync Adapter zu kennen
Tags und Links android android-syncadapter