Saltar al contenido

¿Por qué no usar siempre android:configChanges=”keyboardHidden|orientation”?

Hola, hemos encontrado la solución a tu interrogante, desplázate y la obtendrás aquí.

Solución:

Fondo rápido

Por defecto, cuando ciertos key los cambios de configuración ocurren en Android (un ejemplo común es un cambio de orientación), Android reinicia completamente la actividad en ejecución para ayudarla a adaptarse a dichos cambios.

cuando defines android:configChanges="keyboardHidden|orientation" en su AndroidManifest, le está diciendo a Android: “Por favor, no haga el restablecimiento predeterminado cuando se saca el teclado o se gira el teléfono; quiero manejar esto yo mismo. Sí, sé lo que estoy haciendo”.

¿Es esto algo bueno? Pronto veremos…

¿Sin preocupaciones?

Uno de los pros con los que comienzas es que hay:

no hay necesidad de preocuparse de que su actividad haya sido rotada

En muchos casos, las personas creen erróneamente que cuando tienen un error que está siendo generado por un cambio de orientación (“rotación”), simplemente pueden arreglarlo poniendo android:configChanges="keyboardHidden|orientation".

Sin embargo, android:configChanges=”keyboardHidden|orientation” no es más que una tirita. En realidad, hay muchas formas de activar un cambio de configuración. Por ejemplo, si el usuario selecciona un nuevo idioma (es decir, la configuración regional ha cambiado), su actividad se reiniciará de la misma manera que lo hace con un cambio de orientación. Si lo desea, puede ver una lista de todos los diferentes tipos de cambios de configuración.

Editar: Sin embargo, lo que es más importante, como señala hackbod en los comentarios, su actividad también se reiniciará cuando su aplicación esté en segundo plano y Android decida liberar algo de memoria eliminándola. Cuando el usuario regrese a su aplicación, Android intentará reiniciar la actividad de la misma manera que lo hace si hubo algún otro cambio de configuración. Si no puede manejar eso, el usuario no estará contento…

En otras palabras, usando android:configChanges="keyboardHidden|orientation" no es una solución para sus “inquietudes”. La forma correcta es codificar sus actividades para que estén contentos con cualquier reinicio que les arroje Android. Esta es una buena práctica que te ayudará en el futuro, así que acostúmbrate.

Entonces, ¿cuándo debo usarlo?

Como mencionaste, hay una clara ventaja. Sobrescribir el cambio de configuración predeterminado para una rotación manejándolo usted mismo acelerará las cosas. Sin embargo, esta velocidad viene con un precio de conveniencia.

En pocas palabras, si usa el mismo diseño tanto para el retrato como para el paisaje, está en buena forma al sobrescribir. En lugar de una recarga completa de la actividad, las vistas simplemente cambiarán para llenar el espacio restante.

Sin embargosi por alguna razón usas un diseño diferente cuando el dispositivo está en horizontal, el hecho de que Android vuelva a cargar tu Actividad es bueno porque luego cargará el diseño correcto. [If you use the override on such an Activity, and want to do some magical re-layout at runtime… well, good luck – it’s far from simple]

Sumario rápido

Por todos los medios, si android:configChanges="keyboardHidden|orientation" es adecuado para usted, entonces utilícelo. Pero POR FAVOR asegúrese de probar qué sucede cuando algo cambia, porque un cambio de orientación no es la única forma en que se puede activar un reinicio completo de la actividad.

Desde mi punto de vista: si el diseño es el mismo tanto en modo horizontal como vertical, también puede desactivar uno de los dos en su aplicación.

La razón por la que afirmo esto es que yo, como usuario, espero que la aplicación me brinde algún beneficio cuando cambio de orientación. Si no importa cómo sostenga mi teléfono, entonces no necesito elegir.

Tomemos, por ejemplo, una aplicación en la que tiene un ListView y, al hacer clic en ListItem, desea que se le muestre una vista detallada de ese elemento. En horizontal, haría esto dividiendo la pantalla en dos, teniendo ListView a la izquierda y la vista detallada a la derecha. En Portrait tendría la lista en una pantalla y luego cambiaría la pantalla a la vista detallada cuando se selecciona un ListItem. En ese caso, el cambio de orientación tiene sentido, así como diferentes diseños.

Si te ha sido provechoso este post, te agradeceríamos que lo compartas con más entusiastas de la programación de este modo nos ayudas a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *