- Вы можете сделать это, но в этом нет никакого смысла.
Вы в основном «кешируете» ссылку this
на поле. Инициализация поля будет выполняться непосредственно перед телом конструктора, поэтому каждый раз, когда объект воссоздается, ссылка context
будет обновлена. Это работает аналогично this
, который указывает на этот экземпляр объекта.
Теперь, зачем вы это делаете? Читаемость? Похоже, вы хотите использовать его во внутренних классах, потому что вы явно квалифицируете его с помощью: ActivityStage2.this
. Программисты хорошо понимают метод java, чтобы квалифицировать внешнюю ссылку класса из внутреннего класса, и здесь выигрыш мало. Одним из исключений могут быть анонимные внутренние классы, в которых у вас нет имени внутреннего класса. В этом случае кеширование ссылки на Activity
имеет смысл, но я предпочел бы использовать конечную локальную переменную вместо поля.
Другой причиной для этого может быть то, что вам нужен только интерфейс Context
, а не интерфейс ActivityStage2
: это теоретически теоретически, но на практике я бы не стал делать это без какой-либо другой причины.
Последняя вещь: если вы включите поле в статический один, вы действительно утечки.
Лучше б 'Application Level context' –
Я использую' getApplicationContext() ', вместо' this' –
Если вы работаете внутри используйте это, иначе используйте getApplicationContext() – zozelfelfo