Страницы

Поиск по вопросам

четверг, 19 марта 2020 г.

Как лучше всего хранить Context?

#android #java


Очень часто приходится использовать Context вне класса Activity (например, при использовании
б/д). Как его лучше хранить? getApplicationContext() использовать нельзя.
Пробовал хранить в статическом поле специально заведенного класса, но мне сказали,
это чревато утечкой памяти.
Есть мысль каждый класс наследовать от Context, и там использовать getApplicationContext(),
но намного ли это будет лучше  хранения в статиках?
Какой способ решения предлагаете Вы?    


Ответы

Ответ 1



Хранить Context/Activity вообще не советую - это чревато утечкой памяти Самый лучший способ это создать собственный класс Application - сделать его Singleton и брать Context через Application.getApplicationContext()

Ответ 2



Передавать в конструктор

Ответ 3



Как обычную переменную экземпляра класса, но не статическую. Просто пишите везде, где он нужен(в методах, в конструкторе) первым параметром контекст и потом вызывая свой код передаете ему текущий контекст - контекст активити в котором вызываете свой код. А лучше вообще не хранить его как переменную, ибо часто сохранение контекста вообще не нужно. Исключение могут составить адаптеры, вынесенные во внешние классы.

Комментариев нет:

Отправить комментарий