2

为什么我不应该在 Activity 中使用静态对象或不对 Activity 进行静态调用?

4

2 回答 2

3

更合理的说法是在 Android 中使用静态变量时要格外小心。

您可以使用它们,但请注意您的应用程序可以并且将被操作系统杀死,并在用户返回应用程序时重新启动(即可能来自最近的应用程序列表)。这会导致您的应用程序具有许多不同的入口点,并且您不能假设静态变量将被初始化。

例如,在应用程序的第一个 Activity 中设置一个静态变量,并假设它总是被设置是一个很大的错误。

此外,在将任何引用 Activity 的内容存储为静态变量时要小心,因为这往往是不必要地消耗内存的常见来源。例如,将 a 存储View在静态变量中几乎可以肯定是一个错误,因为如果不清除,它将阻止整个 Activity 被垃圾收集。

于 2012-12-10T18:23:01.560 回答
1

避免将不需要的东西设为静态是一种普遍的好习惯,因为它们会增加内存泄漏的机会。如果您总是持有对某些数据的引用,GC 将无法释放它。

于 2012-12-10T18:18:18.663 回答