В моем случае у меня есть функции буксировки, называемые A (Основная деятельность) и B (Child Activity). A запустит B (B, имеющий некоторый файл загрузки изображений с использованием библиотеки изображений Glide).Почему андроид не очищает память после завершения деятельности?
Если я получаю выделение памяти с помощью монитора памяти Android, я могу ясно видеть, как распределение памяти растет. Это совершенно нормально, потому что мы делаем некоторые связанные с изображением вещи в деятельности B.Image Attached.
Так что моя проблема, если я нажал кнопку назад в активности B он придет к активности А и выделенная память не будет cleared.Memory распределения будет по-прежнему в том же количестве.
Это нормальное поведение в андроиде?
Если нет, то как я могу вручную очистить память?
я вручную запустить GC следующим образом, но тот же результат не повезло :(.
В деятельности В
@Override
protected void onDestroy() {
super.onDestroy();
System.gc();
}
Насколько я знаю, GC будет работать только и только тогда, когда действительно нужен (не больше места кучи), и все в порядке. В противном случае убедитесь, что абсолютно ничего не ссылается на эту память (проверьте статические ссылки) и убедитесь, что вы очистили некоторые специфические для Android ресурсы. – Spidey
Вы нашли решение? – fish40