2016-04-09 10 views
3

シナリオである: - firebase参照が作成されアンドロイドのFirebaseリファレンスを閉じる/破壊する方法は?ここ

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

ユーザがボタンを他の活動にナビゲートクリック数。

メインアクティビティのonPause()が呼び出されます。このコンストラクタを破棄する方法はありますか?

この参照は予期しない動作を引き起こします。 メインアクティビティのfinish()を呼び出すだけで、それが破棄されますか?

+0

GCがこれをすべてJavaの世話をしています。なぜあなたは心配していますか? – dex

+0

どこで正確にリファレンスを作成し、onPauseが発生する前にそれを使って何をしていますか? 「予期しない行動」とは何ですか? – muratgu

+0

@muratguメソッドをonDataChange()の呼び出しを止めたいと思っていました。コンストラクタを破棄することを考えていましたが、Frankが言ったように、リスナーを削除するとそのトリックが実行されます。 dexはいメモリはここではまったく問題ではありません。 – user3450804

答えて

7

Firebaseオブジェクトは、Firebaseデータベース内の場所への軽い参照です。ライフサイクルを管理する必要はありません(能力もありません)。ですから、@dexがコメントしたように、Javaのガベージコレクタに処理させることができます。

一方、リスナーの接続を開始すると(addValueEventListener()など)、対応するライフサイクルイベントで、removeEventListener()でそれらを切り離す必要があります。また、Firebase adding listeners in adapters in AndroidHow stop Listening to firebase location in android

+0

はい、フランクは私が第2リンクを達成しようとしていたものが役に立ちました。 – user3450804

+1

2番目のリンクでは、var listener = ref.addValueEventListener(new ValueEventListener(){// onDataChangeおよびonCanceledの実装})を参照してください。データ型は、varではなくValueEventListenerである必要があります。 – user3450804

+0

@Frank firebaseデータベースのユーザをaddValueメソッドとaddOnSuccessListenerで追加しています。アクティビティを終了しますが、いくつかのキー値をスキップします。完成したjsonデータを追加しませんでした。 –

関連する問題