获取Context的更好方法是什么?

时间:2011-12-14 08:59:53

标签: android android-context

根据this answer或android的文档,有几种方法可以在应用程序中获取Context并将其传递给其他类/方法/ anyuneed。

假设我在Foo活动中并且需要将上下文传递给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 个答案:

答案 0 :(得分:2)

您应该查看this question - 基本上与您的相同。

Avoiding memory leaks上的开发人员文档也为您提供了一些合理的解释,其中有些方法可以合理使用。

答案 1 :(得分:1)

我认为这篇文章将为您提供足够的信息。看看第一个回复。

Difference between Activity Context and Application Context

答案 2 :(得分:0)

Android memory management。它涵盖了Android内存管理的所有方面。

对于上下文解释,this是一个很好的答案。

另一个good explanations of context

答案 3 :(得分:0)

您可能希望使用 this 。它是您当前活动的上下文(这是上下文),并且具有最短的生命周期。但请注意可能发生的内存泄漏。 http://developer.android.com/resources/articles/avoiding-memory-leaks.html

答案 4 :(得分:0)

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

有关它的更多讨论,请浏览该链接

Using Application context everywhere?

希望它能帮到你