Tengo una aplicación de mapa desplazable que por ahora tiene un gran mapa de bits. Se carga bien en el inicio, pero cuando pierde el estado de primer plano y el usuario lo trae de nuevo, obtengo un error de falta de memoria. En onPause, destruye el mapa de bits mediante el reciclaje y lo marca como nulo. El onResume comprueba si map == null y volverá a cargar el mapa de bits, lo que está bloqueando el programa a pesar de que reciclo el mapa de bits ... Aquí hay algunos bits de código. Todas las demás referencias al mapa de mapa de bits primero comprueban si es nulo antes de cargar/dibujar.error de memoria relacionada con grandes mapas de bits y el ciclo de vida de actividad de Android
onPause
protected void onPause() {
super.onPause();
Log.e("sys","onPause was called");
if (map != null)
{
map.recycle();
map = null;
System.gc();
Log.e("sys","trashed the map");
}
}
mi onResume
protected void onResume(){
super.onResume();
Log.e("sys","onResume was called");
if (map == null)
map = BitmapFactory.decodeResource(getResources(),
R.drawable.lowresbusmap);
Log.e("sys","redrew the map");
}
¿Está recibiendo este error en el depurador, o en un teléfono real ? – EboMike
en un teléfono real (motorola droide) – jfisk