Quiero usar android:configChanges="orientation|keyboardHidden"
para algunas de mis actividades para que no se vuelva a llamar a mi onCreate, pero pensé que vería si alguien tuviera una lista de pros y contras primero porque this link dice que solo debería ser utilizado como último recurso.¿Cuáles son los pros y los contras de usar configChanges = "orientation" para dispositivos Android?
¿Cuáles son los pros y los contras de usar configChanges = "orientation" para dispositivos Android?
Respuesta
Un gran profesional en el uso de este enfoque es que requiere muy poco esfuerzo de su parte, y que su aplicación sobrevivirá a los cambios de configuración sin recurrir a fallas.
El pequeño inconveniente es que el uso de recursos específicos de configuración (para orientación horizontal o vertical) no se aplica automáticamente.
En mi (quizás pequeña) experiencia, creo que realmente no vale la pena el esfuerzo de hacer todas las cañerías.
El manejo "adecuado" de estos cambios de configuración requiere una gran cantidad de plomería por su parte, y las cosas se vuelven aún más dramáticas si tiene que admitir diálogos de progreso durante los cambios de orientación de la pantalla.
Aunque la mayoría de las personas optarán por la solución rápida cambiando el manifiesto y configurando su actividad con android: configChanges = "keyboardHidden | orientation", creo que es importante darse cuenta de que hay alternativas a esto.
Requiere más código, pero le da una mejor idea de cómo funciona el sistema en general.
Es raro que Google en realidad no hablar más sobre el razonamiento detrás de él, pero en realidad hay tres razones principales que se me ocurre para evitar el uso de este enfoque:
- En mi experiencia, algunos tipos de vista (en particular, WebViews y MapViews en Android 2.1 o versiones anteriores) pueden comportarse de forma bastante extraña después de que cambie la orientación si no se han recreado (por ejemplo, los botones de zoom mal colocados).
- Impide el uso de diseños específicos de orientación (consulte la vista de paisaje de la nueva aplicación Market, por ejemplo).
- Puede evitar que descubras el comportamiento incorrecto de tu aplicación en relación con otros tipos de razones por las que tu actividad podría destruirse y recrearse (por ejemplo, memoria baja u otras muertes normales mientras estás en segundo plano). Es decir, si su actividad puede manejar correctamente un reinicio debido a la rotación, probablemente pueda manejar un reinicio debido a la eliminación de antecedentes. Sin embargo, si omite la rotación de manejo, es posible que no se produzca un reinicio debido a la eliminación de antecedentes en pruebas normales hasta que un usuario con un teléfono anterior con poca memoria ingrese un informe de error.
La última razón es la más importante; especialmente con teléfonos anteriores de baja RAM y con los comportamientos de autoflagelado supuestamente más agresivos en Gingerbread, sus actividades necesitan saber cómo volver a crearse rápidamente después de una destrucción guardando su estado, independientemente del manejo de la orientación. Y una vez que tus actividades puedan manejar ese tipo de destrucción/recreación, probablemente estés listo para que el cambio de rotación mate a todos. Puede ganar algo de velocidad absorbiendo el evento de rotación (ya que no tiene que retroceder en el inflado del diseño y todo eso) pero eso es todo, en ese punto.
Si decide tragar rotaciones, recomiendo siempre usar un emulador o dispositivo con la opción "Destruir actividades inmediatamente" Development.apk marcada, y luego asegurarse de que el cambio de aplicaciones o el respaldo a través de la pila de tareas todavía funcionan correctamente.
En mi experiencia, las rotaciones absorbentes pueden ser una buena opción para una mejor experiencia del usuario, especialmente en actividades con diseños complejos que pueden tardar unos minutos en recrearse, pero realmente debe probar cuidadosamente y con eficacia para asegurarse de que su actividad sigue funcionando incluso sin ignorar la rotación.
- 1. ¿Cuáles son los pros y los contras de usar Global.asax?
- 2. Objeto de solicitud, ¿cuáles son los pros y los contras?
- 3. ¿Cuáles son los pros y los contras de la UCI?
- 4. ¿Cuáles son los pros y los contras de TreeSet
- 5. ¿Cuáles son los pros y los contras de Solr & ElasticSearch?
- 6. ¿Cuáles son los pros y los contras de los submódulos de git y Repo?
- 7. ¿Cuáles son los pros y los contras para usar un contenedor de IOC?
- 8. ¿Cuáles son los pros y los contras de usar una Mac para el desarrollo web?
- 9. ¿Cuáles son los pros y los contras de usar un correo electrónico como nombre de usuario?
- 10. ¿Cuáles son los pros y los contras de usar una plantilla de motor como Jade?
- 11. ¿Cuáles son los pros y los contras de usar una enumeración de banderas?
- 12. ¿Cuáles son los pros y los contras de usar una DLL?
- 13. ¿Cuáles son los pros y los contras de usar git-svn?
- 14. ¿Cuáles son los pros y los contras de usar Castle Active Record vs Straight NHibernate?
- 15. Cuándo usar actores en libgdx? ¿Cuáles son los contras y los pros?
- 16. ¿Cuáles son los pros/contras de 64 bit .NET?
- 17. ¿Cuáles son los pros y los contras de dejar que Google aloje jQuery para mí?
- 18. ¿Cuáles son los pros y los contras de adoptar HTML 5 ahora para rediseñar un sitio?
- 19. ¿Cuáles son los pros y los contras de usar componentes de diseñador de Visual Studio para los datos
- 20. ¿Cuáles son los pros y los contras de los procedimientos de llamada en VB.NET?
- 21. ¿Qué implementación de matriz haskell usar? ¿Cuáles son los pros y contras de cada
- 22. ¿Cuáles son los pros y los contras de asset_packager y Jammit?
- 23. ¿Cuáles son los pros y los contras de ejecutar un trabajo en Hadoop usando varios idiomas?
- 24. ¿Cuáles son los pros y los contras de las bases de datos de objetos?
- 25. ¿Cuáles son los pros/contras para usar ZeroMQ Binary Star vs Zookeeper para alta disponibilidad?
- 26. ¿Cuáles son los pros y los contras de la autentificación HTTP básica
- 27. android: configChanges = "orientation" no funciona con los fragmentos
- 28. ¿Cuáles son los pros y los contras de la eliminación y las actualizaciones en cascada?
- 29. ¿Cuáles son los pros y los contras de OleDB versus SQLClient?
- 30. ¿Cuáles son los pros y los contras del uso de d-punteros?
Acerca de WebView, es problemático porque si cambia la orientación mientras se carga, se reiniciará la carga. Según lo leí, no puedes restaurar su estado (e incluso está escrito en los documentos) –