2017-07-17 16 views
0

を破壊します(活動はFCMInterfaceを実装)の活動にコールアクティビティ方法は、後に、私は私の受信機に</p> <p>受信機のコードをメッセージを取得するためにFCMを使用し、幅広いキャストメッセージを受信して​​い

質問は活動がonDestroy呼び出し、その後、私は私のインターフェイスの関数を呼び出す場合は何が起こるかですか?

+0

セーフコード化のためにactivity.isFinishing()をtrueまたはfalseにチェックする必要があります –

+0

@RasoulMiriメソッドが呼び出されるかどうかを知りたかった –

+0

これは非常に便利です。Log.i( "=="、 " isCall ");関数内にあり、それが印刷されているかどうかを確認してください –

答えて

0

クラスで実装された方法は、onDestroy()メソッドが呼び出されてしまった後でさえも呼び出されます。

しかし、あなたはもうUIに関連する活動の文脈か何かにアクセスすることはできません。

あなたが登録し、起動時に登録解除()と()のライフ・サイクル・コールバックを停止する必要が放送受信機の設定中。そうしないと、メモリリークの例外が発生します。

アンドロイドのプログラミングのプラクティスでは、通常、onDestroy()が呼び出された後にアクティビティコンテキストに関連するオブジェクトの参照を保持することを避けるようにします。

+0

私は私のインターフェースにメソッドを入れて、アクティビティが動作しているかどうかチェックしていますか? –

+0

確かに、インタフェースメソッドでisFinishing()を使用する –

0

私はあなたのアクティビティにインテントを送信し、インターフェイスの代わりにアクティビティsingleTopまたはsingleTaskまたはSingleIntanceを設定する必要があると思います。

+0

startActivity()を使用してアクティビティにインテントを送信する必要がありますが、オープンされたelse表示通知または何も表示されない場合はアクティビティを更新したい –

関連する問題