在需要时,每次在Activity生命周期中调用findViewById是否合适?

Abh*_*ain 9 performance android

每当我们需要对小部件的引用时,我们使用findByViewById.

当我们在同一个Activity类的代码中引用窗口小部件时,我们可以遵循以下任一方法:

  1. 每次在Activity生命周期中调用findViewById.
  2. 第一次获取它,将引用存储为Activity类的私有实例变量.

哪种方法更好?在性能和内存方面,每种方法的优缺点是什么.请帮忙.

编辑:如果我们转移到从A到B的新活动,我们不会完成A,因为我们想要在后退时打开A. 在这种情况下如何处理上述问题?请帮忙.

nKn*_*nKn 5

这两种方法都有其风险。一般来说,调用findViewById()的次数应该越少,另一方面,在 Activity 类上存储引用可能会导致内存泄漏。这在很大程度上取决于您想要做什么,您调用它的次数并根据它选择一种方法。为此,您需要分析您的代码,如果您不清楚哪个更好,只需尝试两种方法并选择“不那么糟糕”,但通常第一种方法比第二种方法更糟糕,因为您知道自己总是必须在您定义了 id 的所有元素中查找。


小智 1

访问成员变量总是比任何函数调用都要快。该变量的已用空间微不足道。顺便说一句:代码看起来干净多了!