引用UI元素的活动字段

时间:2012-12-14 07:54:25

标签: android android-layout

每次需要时,存储对layout元素的引用而不是findViewById会“更便宜”,但它不会阻止垃圾收集吗?我的假设是onStop状态视图被破坏,至少调用onSaveInstanceState。因此,引用活动或片段中的UI元素可以防止收集元素 - 对吗?

我错了还是应该坚持使用findViewById或尝试弱推理?

感谢。

2 个答案:

答案 0 :(得分:1)

我首选的方法是将视图引用存储在activity中,如果它将被多次访问。

调用findViewById无处不在让我觉得代码难看。

我不相信存储视图引用会影响gc,因为你可以使用Activity访问所有ui元素,它们的引用已经被保存。

答案 1 :(得分:0)

答案是:这取决于,

如果要重复引用UI,保存引用会更便宜。它不是,那么你可以使用findViewById几次。在正常情况下的大多数应用程序中,无论哪种方式都不会对性能产生明显的影响,因为这些任务不是非常系统密集的。因此,我的最终答案是,在您的工作流程中做任何最适合您的事情,因为性能增益/损失几乎可以忽略不计(除非您这么做很多次)。