获取上下文的更好方法是什么?
问题描述:
根据this answer或android的文档,有几种方法可以在应用程序中获取上下文,并将其传递给其他类/方法/任何。获取上下文的更好方法是什么?
比方说,我在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
考虑到内存泄漏,速度快,性能一般,这将是所有这些可能性之间的更好的办法?
答
你可能会想要使用这个。这是您当前Activity(其中上下文)的上下文,并且具有最短的生命周期。但请注意可能发生的内存泄漏。 http://developer.android.com/resources/articles/avoiding-memory-leaks.html
答
我对你的问题没有任何直接的答案,但是如果你比较Foo.this和这个,那么最好使用第一个有时(在嵌套类情况下)第二个将显示错误。
更多讨论,它经过该链接
Using Application context everywhere?。
希望它能帮到你