2017-03-05 7 views
0

Gibt es trotzdem, dass ich die Daten aus der Echtzeit-Datenbank von Firebase lesen kann und es speichern kann, während die App nicht geöffnet ist, verwende ich Firebase.getInstance.goOnline(); im Code, wenn Netzwerkkonnektivität so ändert Es hört die Daten ab.Firebase Daten im Hintergrund lesen Android

Ich bin in der Lage, die Daten in der Datenbank zu schreiben, wenn App nicht in recents oder nicht geöffnet ist, aber auf die gleiche Weise kann ich die Daten nicht lesen, wenn App nicht geöffnet ist. Gibt es einen möglichen Weg? Oder ich gehe einen falschen Weg?

Ich möchte nur, dass, wenn Netzwerkverbindung verfügbar sein wird es die aktualisierten Daten automatisch herunterladen wird. , damit ich später sehen kann, dass die aktualisierten Daten offline sind.

Jede Hilfe wird sehr geschätzt. Bitte.

+1

Ich würde empfehlen, Firebase-Datenbank für Hintergrunddatenübertragung zu verwenden. Verwenden Sie stattdessen Firebase Cloud Messaging. Siehe diese Antwort: http://stackoverflow.com/questions/42593510/firebase-listener-effect-on-battery-life-and-cpu/42593885#42593885 –

+0

Ich bin mir nicht sicher, aber es gibt eine onPause () Methode, die Sie versuchen könnten. –

Antwort

1

Android übernimmt keine Garantie dafür, ob der App-Prozess ausgeführt wird, wenn er nicht auf dem Bildschirm angezeigt wird. Es könnte zugunsten anderer Prozesse, die eine höhere Priorität für den Benutzer haben, getötet werden. Daher ist es im Allgemeinen keine gute Idee anzunehmen, dass Sie jederzeit Netzwerke knüpfen können.

Auch neuere Android-Geräte gehen in doze mode, um die Batterie des Benutzers zu speichern. In diesem Fall wird Ihre App definitiv nicht ausgeführt.

Wenn Sie sicherstellen möchten, dass Ihr App-Prozess ausgeführt wird, können Sie einige Zeit mit JobScheduler oder AlarmManager planen. Oder Sie können Ihre App von Ihrem Server mit Firebase Cloud Messaging pingen.

+0

Ich kann nicht verstehen, wie ich das mit Hilfe der obigen Optionen erreichen kann –

Verwandte Themen