为什么我不应该在Activity中使用静态对象,或者不要对Activity进行静态调用?
答案 0 :(得分:3)
更合理的说法是在Android中使用静态变量时要格外小心。
您可以使用它们,但要注意您的应用程序可以并且将被操作系统杀死,并在用户返回应用程序时重新启动(即可能来自最近的应用程序列表)。这会导致您的应用程序具有许多不同的入口点,并且您不能假设静态变量将被初始化。
例如,在应用程序的第一个Activity中设置一个静态变量,并假设它总是被设置是一个很大的错误。
另外,要小心将存在对Activity的引用的任何内容存储为静态变量,因为这往往是不必要地消耗内存的常见来源。例如,将View
存储在静态变量中几乎肯定是一个错误,因为如果不清除整个Activity,它将阻止整个Activity被垃圾收集。
答案 1 :(得分:1)
一般的好习惯是避免使事情变得不稳定,因为它们会增加内存泄漏的可能性。如果您始终保留对某些数据的引用,则GC将无法释放它。