2017-06-12 3 views
0

私は少し問題があります:Android、Xamarin:アプリが破棄されたら、ユーザーが削除されることを絶対に確実にする方法はありますか?

私は、ユーザーがアプリケーションを閉じるとすぐにデータベースから削除されることを確認する必要があるアンドロイドのインスタントチャットアプリケーションに取り組んでいます。現在のユーザーを削除し

Firebase.Instance.CurrentUser.Delete(); 

:このコード行があります。私は、LogOutボタンを置くことができ、このラインをOnclickイベントに統合して、データベースからユーザを削除することができます。しかし、チャンスは、その覗き見はそのボタンをクリックしないで、代わりにタスクマネージャからアプリを閉じることです。 (または、電話機の電源が切れている)

よくある問題は明らかです。私は100人以上のユーザーをサーバーに接続することはできません(金銭的な理由から)。アプリの終了時に削除された彼の記録の。

私の次の考えは、OnDestroy()メソッドに上記のコード行を追加することでしたが、このメソッドが呼び出されず、呼び出されてもユーザーを削除できないように見えることがありましたそれはあまりにも仕事ですか?私は知らない)。

他に何か試してみることができますか?

+0

ドキュメントによると 'onPause()'はアプリケーションが強制終了されても確実に呼び出される最後のメソッドなので、 'onPause()'の中にメソッドを書いてください。 – Redman

+0

こんにちは、ありがとう。私の知る限りでは、アプリがバックグラウンドに送信されているときは、Pauseが常に呼び出されます。その場合、ユーザーがバックグラウンドでアプリを保存すると、そのユーザーは正しく削除されますか?それは問題になる可能性がありますので、私は確かに人々は、アプリに戻って行きたいかもしれません...しかし、これは唯一のソローション.. – MrMee

+0

アプリ側でそれを解決できない場合は、サーバーに移動しますか?例えば、サーバーは「キープアライブ」タイマーを持つことができます。タイマーが期限切れになっているため、ユーザーが削除されます。ユーザーが現在のセッションを使用するたびに、ユーザーが非アクティブになると時刻がリセットされ、再び開始されます。 –

答えて

2

あなたは虚偽の問題を解決しています。同時に100人以上のユーザをFirebaseに接続することはできませんが、100人以上のユーザを持つことができます。

ユーザーを削除する必要はありません。すべてのオブザーバをonPause()にデタッチする必要があります。