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

Я работаю над кодом 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 для других классов?

Intereting Posts
Android UI DPI Issue – нужны ресурсы xxxhdpi? Google maps v2 не отображается после публикации на игровом рынке Использование CSS font-family для выбора шрифтов Droid, не работающих на Android Сбой эмулятора Android на Windows 7 64 бит Можете ли вы открыть приложение iOS из схемы URL-адресов HTTP? Восстанавливать прикладные данные программно Потоковая передача аудиофайлов и их кеширование Что вы не можете сделать с мобильным приложением HTML5 / Javascript, которое вы можете сделать с помощью собственного мобильного приложения? Сделать изображение на половине экрана Содержимое приложения выходит за панель навигации в android L Есть ли библиотека или алгоритм для персидского (Shamsi или Jalali) календаря в Android? Ошибка Android ADT, dx.jar не был загружен из папки SDK Какой размер лучше всего использовать для значка приложения для Android Cardview не учитывает индекс z в относительной компоновке Как обнаружить Android ListView Scrolling остановлено?