什么是获取上下文的更好方式?

11

根据此答案或安卓文档,有多种方法可以获取应用程序的上下文并将其传递给其他类/方法/需要的任何内容。

假设我现在在Foo Activity中,需要将上下文传递给Bar构造函数。

Bar bar  = new Bar(Foo.this);
Bar bar2 = new Bar(this); //same as first i guess
Bar bar3 = new Bar(getApplicationContext());
Bar bar4 = new Bar(getBaseContext());
Bar bar5 = new Bar(MyApp.getContext); // get context statically 

考虑到内存泄漏、速度和一般性能,所有这些可能性之间哪种方式更好?

5个回答

2
你应该查看这个问题 - 基本上覆盖了与你的问题相同的内容。
此外,避免内存泄漏的开发者文档为你提供了一个合理使用各种方法的解释。

1

0

0

0

我没有直接回答你的问题。但是如果你比较Foo.this和this,最好使用第一个,因为有时(在嵌套类的情况下)第二个会显示错误。

要了解更多讨论,请查看以下链接:

在任何地方使用应用程序上下文?

希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接