Какой лучший способ получить контекст? - PullRequest
11 голосов
/ 14 декабря 2011

Согласно этому ответу или документации андроида, есть несколько способов получить контекст в приложении и передать его другому классу / методу / что угодно настроенному.

Допустим, я 'м в 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 голосов
/ 14 декабря 2011

Вы должны проверить этот вопрос - который в основном охватывает то же, что и ваш.

Кроме того, Документы для разработчиков по Предотвращение утечек памяти дают достойное объяснение некоторых ситуаций, в которых целесообразно использовать различные методы.

1 голос
/ 14 декабря 2011

Я думаю, что этот пост предоставит вам достаточно информации.Посмотрите на первый ответ.

Разница между контекстом активности и контекстом приложения

0 голосов
/ 14 декабря 2011

У меня нет прямого ответа на ваш вопрос. Но если вы сравните Foo.this и этот, то лучше использовать первый, так как иногда (в случае вложенного класса) второй покажет ошибку.

Для дальнейшего обсуждения перейдите по этой ссылке

Использовать контекст приложения везде? .

Надеюсь, это поможет вам

0 голосов
/ 14 декабря 2011

Возможно, вы захотите использовать this .Это контекст вашей текущей деятельности (который контекст ) и имеет самый короткий жизненный циклНо помните о возможной утечке памяти.http://developer.android.com/resources/articles/avoiding-memory-leaks.html

0 голосов
/ 14 декабря 2011

Управление памятью Android . Он охватывает все аспекты управления памятью Android.

Для объяснения контекста это хороший ответ.

Другое хорошее объяснение контекста .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...