我在我的应用程序中动态创建了很多视图。每个都需要上下文。
我应该只使用一个上下文实例,然后将它们传递给每个人,还是应该使用不同的实例。
换句话说,哪个更好,这个 -
Context context = this;
for (int i = 0; i < 10; i++) {
SomeView view = new SomeView(context);
}
或者这个 -
for (int i = 0; i < 80; i++) {
SomeView view = new SomeView(this);
}
注意:视图会在屏幕上停留很长时间。
答案 0 :(得分:0)
如果您在同一个班级工作,可以直接使用&#34; this
&#34;,
如果您需要当前班级中其他班级的上下文,请使用Context c = X.class;
希望它有所帮助。
答案 1 :(得分:0)
请注意,您的两种变体之间没有真正的区别。
在第二个示例中,您不创建this
的另一个实例! Java在后台所做的就是将指针作为对this
的引用传递给构造函数。然而,在第一个示例中,您将对this
的引用传递给context
,并将相同的引用传递给您的构造函数。
这意味着,如果您在视图中更改了上下文中的内容,则上下文也会在每个其他视图中更改。请记住,线程安全不是开箱即用的,请小心。
您可以阅读Java的内部工作原理:wikipedia是一个很好的开始。