Как удалить объект из памяти, Java?

Есть статическая ссылка на класс (объект) UserInterface

public static UserInterface user;
После закрытия в данном случае Android приложения (onDestroy метод) ссылка сохранилась в памяти как собственно и объект, из за этого в методе onCreate не сработало условие

if(user == null)
{
    user = new UserInterface(this, getApplicationInfo());   
    user.setListener(this);
}

Как удалить объект из памяти?

На данный момент на уме только поставить (user = null) в onDestroy;
  • Вопрос задан
  • 20038 просмотров
Пригласить эксперта
Ответы на вопрос 3
@FoxInSox
Никак. Эта работа мусоросборщика. Чтобы дать ему понять что объект можно стереть из памяти нужно удалить все ссылки на него. Т.е.:

user = null;
Ответ написан
Комментировать
svd71
@svd71
@oxInSox немного слукавил. Дело в том, что обнулив ссылочную целостность не будет гарантировать уничтожение объекта. После этого желательно и заставить мусоросборник работать
System.gc();
Особенно это важно для объектов наследников трэдов и раннебол.
Ответ написан
stweet
@stweet
Java, Php, Js
Тоже задался похожим вопросом. Ранее писал на AS(Flash) там с обработчиками туго, приходиться следить самому. Сейчас в JAVA столкнулся с похожей задачей.

Пример:
Есть некий список чекбоксов, подписываюсь на изменение состояния каждого из них. Сам же список формирует модель из выбранного пользователем файла.
Вопрос:
Важно ли отписываться от каждого чекбокса в случае обновления списка или достаточно просто удалить сам чекбокс?

Просто, список полей не малый и желание оптимизировать постоянно отвлекает. Заранее спасибо!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы