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 回答