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á.


Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Librería oficial de PayPal para Android

Librería oficial de PayPal  para Android

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

Algunos artículos que te pueden interesar

Desarrollando aplicaciones de Realidad Aumentada con Wikitude (parte 3)

Desarrollando aplicaciones de Realidad Aumentada con Wikitude (parte 3)

En este artículo veremos cómo agregar capas de información cuando los Targets son reconocidos por el Tracker.

Andrés Cruz 06-03-2014

Detectando la Orientación de un dispositivo con jQuery Mobile

Detectando la Orientación de un dispositivo con jQuery Mobile

En esta entrega veremos como podemos detectar o capturar la rotación de un dispositivo con jQuery Mobile.

Andrés Cruz 17-07-2014

El elemento symbol para los SVG en HTML

El elemento symbol para los SVG en HTML

En esta entrada veremos un elemento muy útil para trabajar con los SVG que es el elemento symbol; este elemento ahorra mucho trabajo y permite agrupar una serie de figuras básicas y pintarlos empleando el elemento use.

Andrés Cruz 01-06-2015