2016-12-01 1 views

Antwort

0

Wahrscheinlich die beste Praxis für diesen Anwendungsfall ist:

1) eine Broadcast von Ihrem Server Feuer, sobald die Datenänderungen.

2) Starten Sie einen Dienst vom Broadcast-Empfänger. (Sie können zusätzliche Daten mit Ihrem Broadcast senden, um zwischen Broadcast-Vorgängen zu unterscheiden).

3) Aktualisieren Sie Ihre Datenbank in Ihrem gestarteten Dienst.

Wenn die obige Lösung nicht möglich ist, dann gilt:

Ich würde Sie empfehlen JobScheduler zu verwenden, die eine neuere und empfohlene Vorgehensweise für solche Anwendungsfälle.

Mit SyncAdapters können Sie jedoch auch Ihr Ziel erreichen. Aber heutzutage werden sie normalerweise verwendet, wenn Sie Konten verwalten oder AuthTokens zwischen anderen Apps teilen oder einige SyncAdapter spezifische Daten in Ihrem ContentProviders speichern müssen.

1

Sie können den Synchronisierungsadapter regelmäßig ausführen. Es spielt keine Rolle, ob Ihre App läuft oder nicht. Es führt die Synchronisierung immer in regelmäßigen Abständen durch. Bilden die documentation, Sie periodische Synchronisations wie auf diese Weise

ContentResolver.addPeriodicSync(
      ACCOUNT, 
      AUTHORITY, 
      Bundle.EMPTY, 
      SYNC_INTERVAL); 

Und dann in Ihrem onPerformSync Methode tun Sie Datenbank Sachen hinzufügen können.

@Override 
    public void onPerformSync(Account account,Bundle extras,String authority,ContentProviderClient provider,SyncResult syncResult) { 
    /* 
    * Do your database stuff 
    */ 
    ... 
    } 
Verwandte Themen