Tengo una de mis actividades que me gustaría evitar que gire porque estoy iniciando una AsyncTask, y la rotación de la pantalla hace que se reinicie.
¿Hay alguna forma de decirle a esta actividad "NO ROTAR la pantalla incluso si el usuario está sacudiendo su teléfono como un loco"?
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
Respuestas:
Añadir
o
al
<activity>
elemento / s en el manifiesto y ya está.fuente
Puede seguir la lógica siguiente para evitar que la pantalla de rotación automática , mientras que su
AsyncTask
se está ejecutando:getRequestedOrientation()
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
.AsyncTask
.AsyncTask
restauración, use su estado de orientación anteriorsetRequestedOrientation(oldOrientation)
.Tenga en cuenta que hay varias formas de acceder
Activity
(que se ejecuta en el hilo de la interfaz de usuario) a las propiedades dentro de unAsyncTask
. Puede implementar suAsyncTask
como una clase interna o puede usar un mensajeHandler
que empuje suActiviy
clase.fuente
En su archivo de manifiesto, para cada actividad que desee bloquear la rotación de la pantalla, agregue: si desea bloquearlo en modo horizontal:
o si quieres bloquearlo en modo vertical:
fuente
La forma más fácil de hacer esto fue poner
dentro de onCreate, justo después
entonces...
fuente
En lugar de entrar en el AndroidManifest, podrías hacer esto:
El único inconveniente aquí es que requiere un nivel API 18 o superior. Así que, básicamente, esta es la punta de la lanza.
fuente
Activity.java
AndroidManifest.xml
fuente
El siguiente atributo en ACTIVITY en AndroidManifest.xml es todo lo que necesita:
Entonces, el nodo de actividad completa sería:
fuente
Añadir:
fuente
Agregue lo siguiente a su AndroidManifest.xml
[aplicación> src> principal> AndroidManifest.xml]
Ejemplo:
fuente
Si está utilizando las Herramientas para desarrolladores de Android (ADT) y Eclipse , puede ir a su AndroidManifest.xml -> pestaña Aplicación -> ir hacia abajo y seleccionar su actividad. Finalmente, seleccione su orientación preferida. Puede seleccionar una de las muchas opciones.
fuente
Debe agregar el siguiente código en el archivo manifest.xml. La actividad para la cual no debe rotar, en esa actividad agregue este elemento
Entonces no rotará.
fuente
Puedes intentarlo de esta manera
fuente
Use AsyncTaskLoader para mantener sus datos seguros incluso si la actividad cambia, en lugar de usar AsyncTask, que es una mejor manera de crear aplicaciones que evitar la rotación de la pantalla.
fuente
Evite la rotación de la pantalla solo agregue esta línea siguiente en sus Manifiestos.
Esto funciona para mi.
fuente
El usuario
"portrait"
en su archivo AndroidManifest.xml puede parecer una buena solución. Pero obliga a ciertos dispositivos (que funcionan mejor en el paisaje) a ir en vertical, sin obtener la orientación adecuada. En la última versión de Android, aparecerá un error. Entonces, mi sugerencia es mejor usar"nosensor"
.fuente