DesarrolloLibre

Desarrollo Web, Android y mucho más

25-09-2014

Muchas veces al momento de probar nuestra aplicación Android que estamos desarrollando, ya sea en el emulador incorporado por el ADT o en un dispositivo físico/real; podemos ver que cuando rotamos o giramos la pantalla, las actividades se reinician, trayendo como consecuencia que:

  • Se borren los textos en los campos.
  • Se eliminen ciertas configuraciones o estados de las actividades.

Entre otros; esto se debe a que cuando se gira o rota la pantalla del dispositivo, el método OnCreate (que pertenece al ciclo de vida de una aplicación Android -ver ciclo de vida de las actividades en Android-) es nuevamente invocado siguiendo el ciclo de vida básico de un aplicación Android y por ende se reinicia; una pequeña sección de código en la configuración del AndroidManifest permite solventar este inconveniente, indicando cuáles actividades deseamos que se reinicien y cuales, para ello hay que agregar el siguiente atributo en el tag activity:

android:configChanges="screenSize|orientation"

Dando un pequeño ejemplo más completo de lo anteriormente explicado:

       <activity android:name="com.cuc.cacu.MyTourActivity" android:configChanges="screenSize|orientation">
        </activity>

¿Qué significa cada uno de estos atributos?

  • orientation: La orientación de la pantalla ha cambiado; o lo que es lo mismo, el usuario ha rotado la pantalla.
  • screenSize: Se presenta cuando cambias la resolución o el aspecto de tu pantalla (16:9 por 9:16 por citar un ejemplo); es decir, cuando cambias entre landscape y portrait (rotas o giras la pantalla).

Más información sobre las configuraciones anteriores:

¿Por qué no configurar todas las actividades para que no se reinicien por defecto?

Depende de cómo estén configuremos nuestras actividades; como podrás saber, al momento de diseñar una actividad para múltiples resoluciones y posiciones de pantalla (landscape/portrait -ver el siguiente ejemplo en un dispositivo móvil si no sabes cual es la diferencia-) puede que necesitemos definir múltiples layouts por actividad:

multiple layouts en android

Lo que significa que si deshabilitados el reinicio de una actividad que presenta múltiples layouts y rotamos (giramos) el dispositivo móvil, el layout no se actualizará.

Ayúdanos a seguir creciendo

Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Paleta de colores para el Material Design

Paleta de colores para el Material Design

Creando increibles Drawer en Android con MaterialDrawer

Creando increibles Drawer en Android con MaterialDrawer

Librería oficial de PayPal para Android

Librería oficial de PayPal  para Android

Algunos artículos que te pueden interesar

Las primeras apps: Dolphin Note y List 1.0

Las primeras apps: Dolphin Note y List 1.0

Hoy les vengo a hablar de un par de aplicaciones que he venido desarrollando hace unos cuantos meses para Android y que he puesto finalmente en la Google Play.

Andrés Cruz 10-08-2015

Dibujando formas geométricas con Canvas en Android

Dibujando formas geométricas con Canvas en Android

Un Canvas no es más que una superficie en el cual se puede dibujar; con las primitivas en Android es posible dibujar gráficos como líneas, círculos, óvalos, cuadrados, rectángulos y textos.

Andrés Cruz 02-03-2015

Animando los SVG con CSS

Animando los SVG con CSS

En esta entrada veremos cómo emplear las animaciones con los SVGs, específicamente emplearemos el logo de Android con el cual hemos trabajado desde entradas pasadas.

Andrés Cruz 15-06-2015