Obtengo un OutofMemoryError para mi aplicación de Android, y estoy un poco confundido sobre qué está pasando. Básicamente lo que sucede es que puedo ejecutarlo las primeras veces, pero cuando intento salir de él y luego abrirlo de nuevo de forma rápida y repetitiva, aparece un error de falta de memoria.¿Cómo liberar la memoria del objeto de actividad real después de salir de la actividad?
He intentado investigar este tema, y he descubierto que el método recycle() ha sido comúnmente el problema. Sin embargo, he llamado al método de reciclaje en cada uno de los mapas de bits (que están almacenados en un contenedor de objetos, almacenado en una lista de arrays), pero todavía estaba recibiendo el problema.
Después de hacer esto, traté de usar el Eclipse Memory Analyzer para ver los volcados de heap, cuando me encontré con algo raro. Después de abandonar la actividad (volver a la actividad del iniciador y luego volver a abrir la actividad mediante un botón, tomé capturas de pantalla del volcado del heap con el analizador de memoria. Resulta que con cada vez que salgo y vuelvo a ingresar en el actividad, otra instancia del objeto de actividad se estaba creando y las antiguas no se estaban liberando, aunque se llamaba al método onDestroy() (que también tenía el código de reciclaje/limpieza.
Intenté reemplazarlo el método de finalización para ver si se llamaba cuando la actividad volvía a la actividad del iniciador, pero no se llamaba. Leo en algunos otros subprocesos de stackoverflow que finalize() no siempre se llama, por lo que al final , Todavía no estoy seguro de lo que está pasando.
En última instancia, mi pregunta es la siguiente: ¿Cómo se supone que debo asegurarme de que el objeto Activity (el objeto de actividad en sí, no el material creado a partir de la actividad) se libera después de abandonar la actividad en otra actividad?
¿Le falta un GC antes de hacer el volcado del montón y todavía ve varias instancias de la actividad? Si es así, probablemente estás filtrando la actividad de alguna manera. Sin su código o más información sobre lo que está haciendo, es difícil adivinar cómo está ocurriendo eso. –
¿Recibió la solución – LMK
hola, ¿obtuvo una solución? ¿Te importaría compartirlo con alguien? –