#android #java
Очень часто приходится использовать Context вне класса Activity (например, при использовании б/д). Как его лучше хранить? getApplicationContext() использовать нельзя. Пробовал хранить в статическом поле специально заведенного класса, но мне сказали, это чревато утечкой памяти. Есть мысль каждый класс наследовать от Context, и там использовать getApplicationContext(), но намного ли это будет лучше хранения в статиках? Какой способ решения предлагаете Вы?
Ответы
Ответ 1
Хранить Context/Activity вообще не советую - это чревато утечкой памяти Самый лучший способ это создать собственный класс Application - сделать его Singleton и брать Context через Application.getApplicationContext()Ответ 2
Передавать в конструкторОтвет 3
Как обычную переменную экземпляра класса, но не статическую. Просто пишите везде, где он нужен(в методах, в конструкторе) первым параметром контекст и потом вызывая свой код передаете ему текущий контекст - контекст активити в котором вызываете свой код. А лучше вообще не хранить его как переменную, ибо часто сохранение контекста вообще не нужно. Исключение могут составить адаптеры, вынесенные во внешние классы.
Комментариев нет:
Отправить комментарий