2011-12-06

onSaveInstanceState llamado dos veces


Cuando rotas el emulador de android, la primera vez los componentes mantienen su estado, todo está bien, pero la segunda vez, onSaveInstanceState es llamado dos veces, porque la activity es instanciada dos veces, una por un pequeño intervalo de tiempo y otra para mantenerla visible. La primera de esta pareja no restaura el estado previo guardado con onSaveInstanceState, porlo que restaurandola se limpiará el estado guardado.

Esto sólo ocurre en el EMULADOR por lo que esto no debería preocupar a nadie, pero hay una solución para prevenir este problema que no perjudica a tu aplicación. Si no necesitas el teclado simplemente añade esto al manifiesto de tu activity en AndroidManifest.xml.

android:configChanges="keyboardHidden"

Pero esto sólo funciona si lo rotas despacio, si lo rotas dos veces justo cuando la activity está restaurándose seguirás teniendo el mismo problema.

Visto  aquí

No hay comentarios: