活动中的静态内容

时间:2012-12-10 18:14:18

标签: android android-activity

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

一般的好习惯是避免使事情变得不稳定,因为它们会增加内存泄漏的可能性。如果您始终保留对某些数据的引用,则GC将无法释放它。