Ich habe eine App, die Firebase verwendet.Firebase onDisconnected aufgerufen beim Schließen der App durch Wischen es
Die Datensätze der Firebase enthalten ein "Status" -Feld, das Informationen geben soll, wenn der Benutzer offline oder online ist.
ich initialisieren es wie folgt aus:
fireBase = new Firebase("https://myProj.firebaseio.com/users");
child = fireBase.child(MyApp.myStringIdentifier);
child.child("status").setValue(ClientStatus.ONLINE);
child.child("status").onDisconnect().setValue(ClientStatus.OFFLINE);
Die Initialisierung funktioniert gut, und die onDisconnect()
wird auch nach viel Zeit gibt es keine Internet-Verbindung und Feuerbasis hat den Status ändern, wie zu erwarten sind offline.
Das Problem ist, dass das Ereignis onDisconnect
auch aufgerufen wird, wenn der Benutzer die App aus der Liste der letzten Apps auswischt, aber ich will, dass der Benutzer online bleibt, da ich noch im Hintergrund laufende Dienste hatte, die einige behandeln sollten Ereignisse, selbst wenn die App geschlossen ist (Sie werden zwar weiterhin ausgeführt, andere Benutzer erhalten jedoch den Offline-Status des schließenden Benutzers und anschließend werden die Aktionen für diesen Benutzer blockiert).
Gibt es eine Möglichkeit zu verhindern, dass onDisconnect
Ereignis aufgerufen wird, wenn der Benutzer die App ausliest?
Ich brauche einen Weg, um den Unterschied zwischen wissen Trennung wegen Grund 1 oder Grund 2 von dem, was du geschrieben hast. Mit Grund 2 gehe ich davon aus, dass der Benutzer überhaupt keine Internetverbindung hat, aber mit Grund 1 möchte ich annehmen, dass die App getötet wurde, aber es gibt noch Dienste, die das können eingehende Ereignisse behandeln –
Ist es möglich, den Grund zu kennen (1 oder 2 von dem, was Sie geschrieben haben), warum das Ereignis onDisconnect aufgerufen wurde? –
Es gibt keine Möglichkeit zu wissen, ob das Ereignis disconnect für eine aktive Trennung oder eine Zeitüberschreitung auf dem Socket ausgelöst wird. Sie können sich darauf verlassen, dass der Client nicht verbunden war. –