Tengo una aplicación que funciona solo en modo vertical, y he realizado los cambios en mi archivo de manifiesto para cada actividad, la orientación es vertical. Pero cuando giro el dispositivo, la actividad vuelve a crearse. ¿Cómo no destruir la actividad?Android, ¿cómo no destruir la actividad cuando giro el dispositivo?
Respuesta
Para API 12 y por debajo de: añadir
android:configChanges="orientation"
Agregar "ScreenSize" si se dirigen a API 13 o por encima de porque cada vez que cambia su orientación también lo hace el tamaño de la pantalla, de lo contrario los nuevos dispositivos continuarán para destruir tu actividad Véase la respuesta de huevo a continuación para obtener más información sobre el uso de "ScreenSize"
android:configChanges="orientation|screenSize"
a su actividad en AndroidManifest.xml. De esta forma, tu Actividad no se reiniciará automáticamente. Consulte the documentation para obtener más información
La actividad se reinicia nuevamente. No sé de qué sirve hacer todo lo que se debe hacer cuando la actividad gira, incluso si no está girando virtualmente. ¿Hay alguna manera de desactivar los mensajes que el sensor envía al sistema operativo sobre la rotación, o algo así, para solucionar este problema desde su raíz? – Vasil
en qué dispositivo estás programando? recuerde que, por ejemplo, deslizar el teclado también podría reiniciar su actividad ... (si ese es el motivo, configure confChanges para "teclado | teclado | orientación oculta") –
esta es la respuesta correcta muchas gracias –
Mire este código en la imagen flotante. Tiene la forma más interesante de manejar la rotación de pantalla. http://code.google.com/p/floatingimage/source/browse/#svn/trunk/floatingimage/src/dk/nindroid/rss/orientation
Desde el flurin documento oficial dijo,
Nota: Si su aplicación se dirige a nivel de la API 13 o superior (según lo declarado por el minSdkVersion y atributos targetSdkVersion), entonces usted debe también declarar la "ScreenSize "configuración, porque también cambia cuando un dispositivo cambia entre orientaciones vertical y horizontal.
Así que si sus objetivos de aplicaciones API de nivel 13 o superior, se debe configurar esta configuración en su lugar:
android:configChanges="orientation|screenSize"
La solución correcta es
androide: configChanges = "orientación | ScreenSize"
Documentación de Android:
El tamaño de pantalla actual disponible ha cambiado. Esto representa un cambio en el tamaño disponible actualmente, relativo a la relación de aspecto actual, por lo que cambiará cuando el usuario cambie entre paisaje y retrato. Sin embargo, si su aplicación se dirige al nivel API 12 o inferior, su actividad siempre maneja esta configuración por sí misma (este cambio de configuración no reinicia su actividad, incluso cuando se ejecuta en un dispositivo con Android 3.2 o superior).
de escritura en el manifiesto:
android:configChanges="orientation|screenSize|keyboardHidden"
y anular este en actividad que resuelve su problema:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
¿Por qué anular el método onConfigurationChanged y llamar a la implementación original para hacer algo útil? – ricosrealm
me estaba metiendo esto para un poco y luego relized que dentro del archivo de manifiesto Estaba poniendo los configChanges en el nivel de la aplicación y no en el nivel de actividad. Aquí es cómo se ve el código cuando funciona correctamente para mí.
Debe compartir el código dentro de su publicación en lugar de una imagen. –
** [editar] ** su publicación y mostrar el código de manifiesto real como texto en lugar de capturas de pantalla. Otros no pueden copiar y pegar desde sus imágenes. [Ver aquí] (https://meta.stackoverflow.com/a/285557/1402846) para más detalles. Gracias. – Pang
- 1. Android: No se puede destruir la actividad
- 2. ¿Cómo destruir una actividad en Android?
- 3. ¿Cómo cambiar una nueva punta cuando giro el dispositivo?
- 4. onBackPressed para ocultar No destruir la actividad
- 5. No se puede ejecutar la aplicación de Android en el emulador/dispositivo: ¿la actividad no existe?
- 6. Android - ¿Qué sucede cuando el dispositivo está desbloqueado?
- 7. onCreate no llamado cuando la pantalla gira - Android
- 8. ¿Cómo ocultar softkeyboad cuando la actividad comience en android?
- 9. ¿Qué sucede cuando una actividad de Android inicia otra actividad?
- 10. Detención de tareas ejecutables Handler al destruir la actividad
- 11. ¿Cómo iniciar un servicio cuando el dispositivo Android está encendido?
- 12. No cargue el dispositivo 'initial_data.json' cuando pruebe
- 13. Android no actividad getSharedPreferences
- 14. Android - El dispositivo vibrador no funciona
- 15. ¿Cómo establecemos la orientación de una actividad en Android, basada en el dispositivo?
- 16. Elija la carpeta en el dispositivo Android
- 17. Android: no se ejecuta el dispositivo
- 18. No es posible destruir la actividad (servicio no se ha registrado)
- 19. El botón Atrás de Android no reinicia la actividad?
- 20. Dispositivo Android (GPS) Dirección
- 21. Reinicia el dispositivo Android de vez en cuando
- 22. ¿Cómo establecer la posición en el giro?
- 23. Cómo mostrar la actividad cuando la pantalla está bloqueada?
- 24. El dispositivo Android no aparece en DDMS
- 25. Android ADB no ve el dispositivo
- 26. Android Show Soft Keyboard cuando comienza la primera actividad?
- 27. Temporizador Android que funciona cuando el dispositivo está durmiendo
- 28. Cómo finalizar la actividad actual en Android
- 29. Android simula la ubicación en el dispositivo?
- 30. Android - Actividad no encontrada Excepción
Esto a menudo se aconseja en contra, podría intentar establecer la orientación de las aplicaciones mediante programación con algo como: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); – stealthcopter
¿Por qué sería contra? Digamos que tenemos un servicio que tarda 2 segundos en ejecutarse. Si la actividad se destruye cada vez, ese servicio se mantiene en funcionamiento cada vez que solo necesito que se ejecute una vez. –