Ist es möglich, den SyncAdapter im Hintergrund auszuführen, auch wenn die Anwendung nicht ausgeführt wird? Ich möchte die SQLite-Datenbank aktualisieren, wenn es irgendwelche Änderungen auf dem Server gibt, selbst wenn die Android-Anwendung nicht läuft?führen Sie das SyncAdapter im Hintergrund, wenn die Anwendung nicht ausgeführt wird
Antwort
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.
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
*/
...
}
- 1. Führen Sie die Anwendung im Hintergrund
- 2. Android-Anwendung im Hintergrund ausgeführt?
- 3. BroadcastReceiver, wenn die Anwendung nicht ausgeführt wird
- 4. Führen Sie Python im Hintergrund
- 5. Wie wird ein Symbol in der Statusleiste angezeigt, wenn die Anwendung ausgeführt wird, auch im Hintergrund?
- 6. JobScheduler wird nicht im Hintergrund ausgeführt
- 7. iPhone - App-Einstellungen ändern, während Anwendung im Hintergrund ausgeführt wird
- 8. Führen Sie eine Anwendung im Hintergrund eines anderen
- 9. Wie wird eine J2ME-Anwendung im Hintergrund ausgeführt?
- 10. Führen Sie Python-Skript nur, wenn es nicht ausgeführt wird
- 11. Führen Sie einen ffmpeg-Prozess im Hintergrund
- 12. Wie kann ich das gestoppte Ereignis meiner Java-Anwendung erfassen, die im Hintergrund ausgeführt wird
- 13. Führen Sie einen Sellerie Arbeiter im Hintergrund
- 14. iOS-Anwendung wird standardmäßig im Hintergrundmodus ausgeführt.
- 15. Führen Sie Gradle Java-Projekt im Hintergrund
- 16. Countdown-Timer fortsetzen, wenn App im Hintergrund ausgeführt wird
- 17. NFC Intent starten App mit Launcher-Aktivität nur, wenn die App nicht im Hintergrund ausgeführt wird
- 18. Xiaomi erhält keine Benachrichtigung, wenn die Anwendung nicht ausgeführt wird
- 19. Anwendung nicht ordnungsgemäß beendet und im Hintergrund ausgeführt
- 20. führen Sie Bat-Datei im Hintergrund
- 21. Aufruf einer Funktion, wenn die Anwendung im Hintergrund ist
- 22. Wird FirebaseMessagingService standardmäßig im Hintergrund ausgeführt?
- 23. stoppen Sie das Widget im Hintergrund ausgeführt werden, auf löschen()
- 24. ios: Queue blockt im Hintergrund und wird ausgeführt, wenn das Netzwerk verfügbar wird
- 25. Führen Sie meine Anwendung im Hintergrund, wenn ich Gerät einschalten in android
- 26. Wenn Android-Gerät onopen, führen Sie Anwendung
- 27. didReceiveRemoteNotification wird nicht ausgeführt, wenn App ausgeführt wird (FOREGROUND)
- 28. Warum wird das nicht ausgeführt, wenn der Block ausgeführt wird?
- 29. Kontrollaufgabe im Hintergrund ausgeführt node.js
- 30. Android-Webview fortsetzen, wenn das Betriebssystem pausiert ist/JavaScript im Hintergrund ausgeführt wird?
https://developer.android.com/training/sync-adapters/creating-sync-adapter.html –