繁体   English   中英

花括号中的上下文

[英]Context in curly braces

活动是否扩展了上下文,那么为什么我们将上下文作为参数传递......

LinearLayout layout = new LinearLayout(context);

一般来说,你在 Android 中传递给任何ViewContext几乎总是一个 Activity。 喜欢 99.9% 的时间。 但是,在某些情况下,这不是您想要通过的。 在这种情况下,也许您正在构建 UI 的一部分,远离 Activity,以便稍后放置到位。 您可能不知道这将附加到什么活动。

然而,有充分的理由确保它始终是活动,如本文所述 例如,利用 Activity 确保主题保持一致。

由于视图并不需要一个活动,每说,要建立,我们并不需要手工活动。 因此,构造函数只接受 Context。 这是 ISP(接口隔离原则)的一个很好的例子,因为我们限制了 View 可以安全访问的范围(它可以在 Context 上调用哪些方法)。 我们还增加了 View API 的灵活性,因为我们不需要 Activity 来实例化视图。

Activity is a Context正如你在这个中看到的那样。

Context持续整个应用程序运行时间,而ActivityActivity结束后停止。 如果Activity在代码中的LinearLayout对象之前结束,则会发生内存泄漏,因为仍然存在对该Activity的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM