我听说“理想情况下,每个视图都应在活动中定义”
换句话说,我不应该在活动之外创建元素
(使用从活动发送到负责创建元素的类的应用程序上下文)
示例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个元素,是否会造成内存泄漏
(因为应用程序上下文将一直存在直到应用程序处于活动状态,并且活动将被垃圾回收直到活动终止)
答案 0 :(得分:0)
如果在活动销毁后,从活动创建的所有对象都没有悬空,那么第二个示例也应该很好。这样,在销毁活动所托管的所有对象时,应该可以对其进行垃圾收集。