活动是扩展上下文,然后为什么我们将上下文作为参数传递...
LinearLayout layout = new LinearLayout(context);
答案 0 :(得分:2)
通常,您在Android中Context
交出任何View
几乎总是一项活动。大概有99.9%的时间。但是,在某些情况下,这不是您想要通过的。在这种情况下,也许您正在从活动中构建UI的一部分,以便稍后放置。您可能不知道它将附加到什么活动。
有充分的理由要确保它始终是活动,如in this article所述。例如,利用“活动”可确保主题保持一致。
由于View不需要 可以创建的活动,因此我们不需要处理该活动。因此,构造函数仅采用Context。这是ISP(接口隔离原理)的一个很好的例子,因为我们限制了View可以安全访问的范围(它可以在Context上调用的方法)。我们还增加了View API的灵活性,因为我们不需要Activity来实例化视图。
答案 1 :(得分:1)
Identity
isa Activity
。
Context
会在您的应用运行的整个过程中持续,而Context
会在Activity
结束后停止。如果Activity
在代码中的Activity
对象之前结束,则会发生内存泄漏,因为仍然有对该LinearLayout
的引用。