Firebaseを使用するアプリがあります。アプリを閉じるときにFirebase onDisconnectedが呼び出される
Firebaseのレコードには、ユーザーがオフラインまたはオンラインの場合に情報を提供すると思われる「ステータス」フィールドがあります。
私はそのようにそれを初期化します。
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);
初期化が正常に動作し、多くの時間インターネットに接続してfirebaseはありませんが、期待通りにオフラインにステータスを変更した後onDisconnect()
とも呼ばれます。
最近のアプリリストからアプリをスワイプしたときにも、onDisconnect
というイベントが呼び出されますが、バックグラウンドで実行されているサービスがあるため、ユーザーがオンラインにしておきたいという問題があります。 (まだ実行中ですが、他のユーザーが閉鎖ユーザーのオフラインステータスを取得してから、そのユーザーに対するアクションがブロックされます)。
ユーザーがアプリをスワイプしたときにonDisconnect
イベントが呼び出されないようにする方法はありますか?あなたのFirebase Databaseクライアントの
私はとの違いを知るための方法が必要ですあなたが書いたことの理由1または理由2による接続断2の理由ユーザーはインターネット接続を全く持たないと仮定しますが、理由1で私はそのアプリケーションが殺されたと仮定したいと思いますが、着信イベントを処理します。 –
なぜonDisconnectイベントが呼び出されたのか(あなたが書いた1または2の理由)を知ることは可能ですか? –
切断イベントがソケットのアクティブ切断またはタイムアウトに対して発生するかどうかを判断する方法はありません。信頼できるのは、クライアントが切断されたことだけです。 –