Активность, имеющая статическую ссылку

Я работаю над кодом Android, написанным кем-то другим, и у него есть несколько проблем с памятью. Одна проблема, которую я не могу понять, это. В основном классе Activity он имеет статический метод, называемый getReference (). Этот метод в основном возвращает ссылку на переменную mThis . Теперь, в методе onCreate

class MyActivity extends Activity { private static MyActivity mThis; public MyActivity getReference(){ return mThis; } public onCreate(Bundle savedInstanceState){ mThis = this; } ... } 

Теперь в Content Provider или классе, расширяющемся из класса Dialog, он использует этот статический метод для получения ссылки на контекст.

Я уверен, что это неверно и является одной из причин утечки памяти. Но есть ли способ получить текущий контекст без фактического прохождения объекта контекста в каждом классе. Существует контекст приложения, но я не думаю, что у него есть какой-либо метод для получения текущего контекста.

Я могу удалить этот метод, а затем передать ссылку на объект контекста на эти классы. Но есть ли другой способ исправить это.

Я уверен, что это неверно и является одной из причин утечки памяти.

Да.

Но есть ли способ получить текущий контекст без фактического прохождения объекта контекста в каждом классе.

Нет «текущего контекста». Предоставьте Context любому методу, который ему нужен. Вы заметите, например, что большая часть Android SDK настроена таким образом.

При создании ContentResolver и Dialog контекст уже передан в конструкторах, поэтому я не вижу необходимости в этом методе. Что такое mThis для других классов?