14

アクティビティの onDestroy() コールバックでインスタンス変数を明示的に null に設定するのは良い考えですか? このようなもの:

    @Override
protected void onDestroy() {
    super.onDestroy();
    mClassVariable1 = null;
    mClassVariable2 = null;
    mClassVariable3 = null;
}

私がJava SEから正しく覚えていれば、分離されていて実行中のプログラムに接続されていない参照は、とにかくガベージコレクションすることができます。それで、これは上記を不必要にしますか?

一方、モバイル デバイスのライフサイクルは異なりますが、上記はベスト プラクティスでしょうか?

私はそれを行うのに害はないことを知っていますが、いくつかのクラス変数 (個々の UI 要素への参照など) がある場合があるため、実際に何が起こっているのか、自分の理解のために知りたいです。

前もって感謝します!

4

1 に答える 1

7

ガベージ コレクターが分離された参照を取得すると言ったのは正しいことです。具体的には、実行スレッドに接続されていない参照のグラフが収集されます。このため、私が見ることができるように、変数を null に設定する正当な理由はありません。コードの保守コストは、どのような利点よりもはるかに重要です。

于 2011-04-07T14:51:23.640 に答える