2016-04-09 1 views
3

Hier ist das Szenario -:Wie man eine Firebase-Referenz in Android schließt/zerstört?

Eine Feuerbasis Referenz

Firebase myRef = new Firebase(url) // In Main Activity 

Benutzer eine Taste, um eine andere Aktivität navigiert Klicks erstellt wird.

onPause() für Hauptaktivität wird aufgerufen. Gibt es eine Möglichkeit, diesen Konstruktor zu zerstören?

Diese Referenz erzeugt ein unerwartetes Verhalten. Einfach aufrufen Finish() für Hauptaktivität wird es zerstören oder nicht?

+0

GC kümmern sich um all dies in JAVA Warum nehmen Sie sich Sorgen? – dex

+0

Wo genau erstellen Sie den Ref und was machen Sie damit bevor onPause passiert? Was ist das "unerwartete Verhalten"? – muratgu

+0

@muratgu Ich wollte aufhören, die Methode onDataChange() aufzurufen. Ich dachte über das Zerstören des Konstruktors nach, aber wie Frank erwähnt hat, das Entfernen des Zuhörers wird den Trick tun. dex Ja, Speicher ist überhaupt kein Problem. – user3450804

Antwort

7

Firebase Objekte sind einfache Referenzen auf Speicherorte in Ihrer Firebase-Datenbank. Es gibt keine Notwendigkeit (noch Fähigkeit), ihren Lebenszyklus zu verwalten. So wie @dex kommentierte, können Sie einfach den Java Garbage Collector für sie sorgen lassen.

Auf der anderen Seite sollten Sie, sobald Sie mit dem Anhängen von Listenern beginnen (z. B. addValueEventListener()), diese im entsprechenden Lebenszyklusereignis mit removeEventListener() trennen. Siehe auch Firebase adding listeners in adapters in Android und How stop Listening to firebase location in android

+0

Ja, Frank, genau das, was ich versuchte zu erreichen, war hilfreich. – user3450804

+1

Nur um zu klären, dass dies für die zukünftige Codereferenz zu lesen. In der zweiten Link haben Sie var listener = ref.addValueEventListener (new ValueEventListener() {// Implementierung der onDataChange und onCanceled}); Der Datentyp sollte ValueEventListener anstelle von var sein. – user3450804

+0

@Frank Ich füge Benutzer in Firebase-Datenbank von SetValue-Methode und AddOnSuccessListener Ich schließe die Aktivität, aber es überspringt einige Schlüssel Wert bedeutet, dass es keine vollständigen JSON-Daten hinzugefügt, wenn ich das Ende Aktivität kommentieren es richtig, wie dieses Problem zu lösen –