我听说“最好在活动中定义每个视图”,是真的吗?

时间:2019-11-09 07:34:21

标签: android

我听说“理想情况下,每个视图都应在活动中定义”

换句话说,我不应该在活动之外创建元素
(使用从活动发送到负责创建元素的类的应用程序上下文)

示例1:

Button mButton1 = new Button(this);

Example2:

Button mButton2 = new Button(mContext);
// The activity sends mContext (GetApplicationContext() in the activity) as an argument

在上述示例1 中,元素是在活动中创建的
在上面的示例2 中,该元素是在从活动调用的类中创建的,并且活动将应用程序上下文发送到该类

第二个例子是不好的做法吗?
如果我使用第二种方法动态创建500个元素,是否会造成内存泄漏
(因为应用程序上下文将一直存在直到应用程序处于活动状态,并且活动将被垃圾回收直到活动终止)

1 个答案:

答案 0 :(得分:0)

如果在活动销毁后,从活动创建的所有对象都没有悬空,那么第二个示例也应该很好。这样,在销毁活动所托管的所有对象时,应该可以对其进行垃圾收集。