Освободит ли моя память вызов функции finish () из памяти? - PullRequest
11 голосов
/ 23 мая 2011

У меня есть активность, которая использует значительное количество памяти в моем приложении. Поэтому, когда пользователь переключается с этого действия на какое-то другое, я пытаюсь вызвать finish (), чтобы остановить это действие.

У меня вопрос: вызовет ли метод finish () для этого действия освободить пространство памяти или просто завершит это действие без очистки памяти, используемой этим конкретным действием?

Любая помощь очень ценится.

Ответы [ 3 ]

7 голосов
/ 11 сентября 2012

Пожалуйста, попробуйте это в своей деятельности и проверьте ..

@Override
public void onDestroy() {
    super.onDestroy();
    Runtime.getRuntime().gc();      
}
4 голосов
/ 23 мая 2011

Операция, из которой вы вызываете метод finish(), уничтожена, и все его ресурсы поставлены в очередь для сбора мусора, поскольку ссылка на это действие становится недоступной.Таким образом, вся память, которая использовалась этим действием, будет освобождена во время следующего цикла GC.

0 голосов
/ 23 мая 2011

Да, pixie, правильно в отношении finish (), просто для получения дополнительной информации о вызове финиша в активности удаляет эту активность из стека. Что означает переход из действия 1 -> действие 2 и вызов действия 2, если метод Finis () вызывается в операции 1, то операция 1 удаляется из стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...