Synchronisieren eines REST-Dienstes mit einer Android-App

8

Es gibt einen REST-Service, mit dem ich Informationen in meiner Datenbank befüllen kann, die später von meiner App verwendet werden. Ich habe mehrere Threads zu diesem Thema gelesen und muss nun entscheiden, wie die Synchronisierung zwischen dem REST-Service und meiner DB funktionieren soll.

Denken Sie an eine App, die Informationen aus Google Finanzen APIs über Aktien und speichert sie in einer Datenbank, zeigt die Informationen, wenn die App gestartet wird, und sendet Benachrichtigungen, wenn bestimmte Ereignisse im Aktienkurs passieren.

Ich habe bereits die einfache Option AsyncTask implementiert, die gestartet wird, wenn ein Benutzer manuell eine Synchronisierung anfordert. Jetzt muss ich die automatische Synchronisierung implementieren und das sind die Optionen, die ich gefunden habe:

  • Erstellen Sie eine Service , die die Synchronisierung durchführt
  • Verwenden Sie einen Sync-Adapter / Sync-Provider

Ich fand also eine Menge Vorteile für die zweite Option, insbesondere die, die in diesem Video erklärt wurden, aber auch zwei Hauptnachteile:

  • Ich konnte keine gute Dokumentation für die Android-Synchronisierung finden (ein paar Artikel von Drittanbietern wie diese , aber kein offizieller Google-Führer oder Android-Entwickler )
  • Laut diesem Artikel kann das Durcheinander in einem Sync-Adapter zu schwerwiegenden Problemen wie einem Absturz des Betriebssystems und einem Neustart führen.

Die meisten Informationen, die ich gefunden habe, sind ziemlich alt, vielleicht haben sich die Dinge seitdem geändert, aber meine App sollte mit API Level 8 und höher arbeiten, daher wäre ich sehr dankbar für Empfehlungen und Links zu wertvollen Dokumenten / p>     

tbkn23 08.05.2013, 06:03
quelle

2 Antworten

3

Gehe auf jeden Fall mit SyncAdapter. Folgen Sie den Anweisungen hier: Warum löst ContentResolver.requestSync kein a aus synchronisieren? .

Um SyncAdapter zu machen, müssen Sie auch einen Account / AccountAuthenticator einrichten, damit Ihr SyncAdapter weiß, wie er sich bei Ihrem Dienst anmeldet - es sei denn, es handelt sich wirklich um die Google Finance-APIs. In diesem Fall müssen Sie alles tun ist die richtigen Berechtigungen im Manifest anzuwenden, so dass es die Kontoeinstellungen bereits auf dem Telefon verwendet.

Du hast den Artikel, den du erwähnt hast, nicht verlinkt, aber ich weiß es, und es redet tatsächlich über Accounts - mit denen du vorsichtig sein musst.

    
jcwenger 08.05.2013 15:22
quelle
0

Checkout Ссылка .

Demonstriert das Einrichten der Synchronisierung von Google Task API-Daten mit lokalen SQLite-Datenbanken.

    
Sean 28.10.2014 02:10
quelle