在我的项目中,我需要使用一些UI对象(例如Textview)来处理两个独立的类或两个活动之间;
在这种情况下,为了避免重复获取UI对象的代码,我想要使用静态Ui对象。 当然,我也在考虑App生命周期中静态对象的安全性; 但android-static-object-lifecycle的文章澄清了我的怀疑;
当您切换到另一个应用程序的其他活动时,静态变量的值将保持不变,并且以下三个都不会发生。
1。该课程已卸载
2。 JVM关闭
第3。过程终止
在我的意见中,使用静态对象不仅安全而且更容易在不同的班级使用;但实际上很少见到其他项目。 使用静态ui对象有什么缺点吗?
请在此发布您的建议...提前致谢
答案 0 :(得分:2)
每个UI元素都需要context
。当您提供this
(例如this
为Activity
子类)时,该元素将保留对您的活动的引用。这很糟糕,因为运行时可以重新创建活动实例(例如,当屏幕旋转时)。在这些情况下,旧实例仍将保留在内存中(因为它不能被垃圾回收),因为您的UI元素具有它的引用(通过this
)。因此,建议不要使用static
UI元素。