Ich habe vor kurzem über den GcmTaskService und GcmNetworkManager gelesen, um eine Aufgabe zu planen. Mein Anwendungsfall ist der typische SyncAdapter, bei dem ich regelmäßig Daten mit meinem Server synchronisieren muss, und derzeit verwende ich SyncAdapter. Meine Frage ist, was sind die Unterschiede zwischen GcmTaskService und SyncAdapter. Und wann GcmTaskService vs zu verwenden, wenn SyncAdapter verwenden?GcmTaskService vs SyncAdapter
Antwort
GcmTaskService
: Wird von der Clientanwendung implementiert, um einen Endpunkt für den GcmNetworkManager
bereitzustellen, zu dem zurückgerufen wird, wenn eine Task zur Ausführung bereit ist. Aufgaben müssen rechtzeitig anhand eines Ausführungsfensters geplant werden. Während dieses Ausführungsfensters wird der Scheduler nach eigenem Ermessen eine optimale Ausführungszeit basierend auf Netzwerkverfügbarkeit, Netzwerkaktivität und Auslastung auswählen.
Sync Adapter übernimmt die Synchronisierung der Daten zwischen dem Server und der lokalen Datenbank. Sync-Adapter laufen asynchron, sie übertragen Daten regelmäßig und effizient, aber nicht sofort. Wenn Sie Daten in Echtzeit übertragen müssen, sollten Sie dies in einer AsyncTask oder einem IntentService tun. Dieses Framework hilft beim Verwalten und Automatisieren von Datenübertragungen und koordiniert Synchronisierungsvorgänge zwischen verschiedenen Apps.
Google Cloud Messaging (GCM) stellt sowohl die Server- als auch die Gerätekomponenten bereit, die Sie für die Arbeit mit diesem Messaging-System benötigen. Die Verwendung von GCM zum Auslösen von Übertragungen ist zuverlässiger und effizienter als das Abfragen von Servern nach Status. Während der Abruf einen Dienst benötigt, der immer aktiv ist, verwendet GCM einen BroadcastReceiver, der aktiviert wird, wenn eine Nachricht eintrifft. Während das Polling in regelmäßigen Abständen Akkustrom nutzt, selbst wenn keine Updates verfügbar sind, sendet GCM nur bei Bedarf Nachrichten.
Ihr Kommentar bietet keine klaren Unterschiede zwischen den beiden Optionen. – Saket
http://programmers.stackexchange.com/questions/219357/design-pattern-for-syncing-data-in-android – vsvankhede