Galaxy S3: tomar fotos en modo retrato destruye actividad
Por lo tanto, esta pregunta se ha pedido en muchas formas en este foro, pero ninguna de las respuestas me están ayudando. Tengo un error que sólo he podido reproducir en el Samsung Galaxy S3.
Quiero simplemente tomar y almacenar una foto usando la cámara del teléfono, pero mi Actividad está siendo destruida antes de que yo vuelva a escuchar de onActivityResult. Esto sucede SOLAMENTE cuando utilizo la cámara en modo del retrato, en modo del paisaje está muy bien.
- Creación del emulador Galaxy S5
- Abrir el menú de ServiceMode por programa en Android
- Ruta de acceso de getExternalStoragePublicDirectory en Samsung Galaxy Note
- ¿Es posible comprobar el estado de las aplicaciones "Contactos" y "Mensajería" mediante un servicio de fondo en Android?
- ObjectAnimator.setDuration se ignora
Estoy usando este código para iniciar la cámara:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, Config.ACTIVITY_TAKE_PHOTO);
En modo retrato, nunca veo una llamada a onActivityResult (de la actividad Cámara), sólo veo un onDestroy () llamado en mi actividad de lanzamiento. No hay excepciones o errores en el registro, y nada obviamente equivocado para hacer que se bloquee.
He visto mensajes que recomiendan añadir "android: configChanges =" orientation | keyboardHidden "" al Manifiesto, y hacer muchas otras cosas para administrar el cambio de orientación que se produce al usar la cámara, pero nada ha ayudado hasta ahora.
¿Alguien más ha resuelto este problema?
- WifiManager.is5GHzBandSupported () mentir?
- Cómo ver la consola Javascript de Stock Browser en Android Galaxy S4
- ¿Puedo activar el teclado virtual de Android para abrirlo a través de javascript (sin separación telefónica)?
- Android - Comma como separador decimal en Teclado Numérico
- Excepción "OutOfMemory" sólo en Samsung Galaxy S3
- Aplicación de Android Studio en ejecución en el Samsung Galaxy S3 se bloquea al subir el archivo
- La actividad de Android se recrea
- ¿Por qué el Samsung Galaxy S ignora la metaetiqueta escalable por el usuario?
Si está apuntando más allá del nivel API 13,
android:configChanges="orientation|keyboardHidden"
Al Manifiesto no será suficiente.
Comprueba este extracto de la documentación de Android
Nota: Si su aplicación apunta al nivel API 13 o superior (como declarado por los atributos minSdkVersion y targetSdkVersion), también debe declarar la configuración "screenSize", porque también cambia cuando un dispositivo cambia entre orientaciones vertical y horizontal.
Por lo tanto, intenta agregar
android:configChanges="orientation|keyboardHidden|screenSize"
A su archivo de manifiesto. Esto debería solucionar tu problema.
Android puede llamar al método destroy () en ciertos escenarios. Uno es cuando usamos el método finish (). Una alternativa es usar el método isFinishing () de la clase Activity. Si realmente se está finalizando podría finalizar sus recursos, de lo contrario, puede mantener los valores asignados a una clase que hereda Application
@Override protected void onDestroy() { final YourApp app = (YourApp) getApplicationContext(); if (app != null && isFinishing()) { app.finalizeAppResources(); } // ... super.onDestroy(); }
- Dejar una animación de Android en su estado final
- Android: ¿Cuándo se destruye el contexto de OpenGL?