Установка переменных экземпляра на null в onDestroy не является ответом. Ищите утечки, в которых вы сохраняете ссылку на уничтоженную деятельность. onDestroy означает, что система выполнена с Деятельностью. Убедитесь, что ваш код тоже.
тся ли хорошей идеей специально установить переменные экземпляра в null в обратном вызове onDestroy () действия? Что-то вроде этого:
@Override
protected void onDestroy() {
super.onDestroy();
mClassVariable1 = null;
mClassVariable2 = null;
mClassVariable3 = null;
}
Если я правильно помню из Java SE, любые ссылки, которые изолированы и не связаны с работающей программой и могут быть в любом случае собраны мусором. Так что же делает вышесказанное лишним?
С другой стороны, жизненный цикл мобильных устройств будет другим, будет ли вышеупомянутое лучшей практикой?
Я знаю этоне может повредить чтобы сделать это, но иногда есть несколько переменных класса (ссылки на отдельные элементы пользовательского интерфейса и т. д.), поэтому я действительно хотел бы знать для собственного понимания, что на самом деле происходит.
Заранее спасибо!