Подтвердить что ты не робот

Вызов функции finish() из активности освободит мое пространство памяти?

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

@Override
public void onDestroy() {
    super.onDestroy();
    Runtime.getRuntime().gc();      
}

Ответ 3

Да, pixie, правильно о finish(), просто для получения дополнительной информации о вызове finish в активности, удаляет эту активность из стека. Это означает, что при переходе из Activity 1 → Activity 2 и вызывающей активности 2, если функция finish() вызывается в действии 1, то действие 1 удаляется из стека.