onDestroy() - 设置或不设置实例变量为null?

时间:2011-04-07 14:45:19

标签: android android-lifecycle

在活动的onDestroy()回调中专门将实例变量设置为null是一个好主意吗?像这样:

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

如果我从Java SE中正确记得,任何被隔离的参考资料没有连接到正在运行的程序&无论如何都可以收集垃圾。那么这会使上述多余吗?

另一方面,移动设备的生命周期不同,以上是最佳做法吗?

我知道不能伤害这样做,但有时会有一些类变量(对单个UI元素的引用等),所以我真的想知道我自己的理解,真正发生了什么。

提前致谢!

1 个答案:

答案 0 :(得分:7)

当你说垃圾收集器将获取被隔离的引用时,你说得对。具体而言,将收集未连接到执行线程的任何引用图。因此,没有充分的理由将变量设置为null,我可以看到。代码维护成本远远超过任何优势。