每次需要时,存储对layout元素的引用而不是findViewById会“更便宜”,但它不会阻止垃圾收集吗?我的假设是onStop状态视图被破坏,至少调用onSaveInstanceState。因此,引用活动或片段中的UI元素可以防止收集元素 - 对吗?
我错了还是应该坚持使用findViewById或尝试弱推理?
感谢。
答案 0 :(得分:1)
我首选的方法是将视图引用存储在activity中,如果它将被多次访问。
调用findViewById无处不在让我觉得代码难看。
我不相信存储视图引用会影响gc,因为你可以使用Activity访问所有ui元素,它们的引用已经被保存。
答案 1 :(得分:0)
答案是:这取决于,
如果要重复引用UI,保存引用会更便宜。它不是,那么你可以使用findViewById几次。在正常情况下的大多数应用程序中,无论哪种方式都不会对性能产生明显的影响,因为这些任务不是非常系统密集的。因此,我的最终答案是,在您的工作流程中做任何最适合您的事情,因为性能增益/损失几乎可以忽略不计(除非您这么做很多次)。