Actividad muerta / onCreate llamada después de tomar la imagen a través de la intención
Estoy tratando de tomar una foto usando una intención. Mi problema es que a veces después de tomar una foto de mi actividad, que llama a startActivityForResult, parece ser destruido para que onCreate se llama de nuevo.
Aquí está mi código para tomar fotos después de hacer clic en una vista de imagen, que la imagen debe ser reemplazada:
- Deje de guardar la imagen cuando abra la cámara usando Intentar desde mi aplicación
- El tamaño de imagen de Android cambia después de la devolución de llamada de la cámara
- Android: captura la foto
- La intención de la cámara Android crea dos archivos
- Evitar que la actividad sea destruida
if (!getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { Util.makeLongToast(R.string.lang_no_camera); } else { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_ITEM_PHOTO); }
…
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.v(TAG, "onactivityresult called"); if (requestCode == TAKE_ITEM_PHOTO) { if (data != null) { imageUri = data.getData(); try { img_photo.setImageBitmap(Media.getBitmap( getContentResolver(), imageUri)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else Log.w(TAG, "data is null"); } }
Así que todo lo que intento es tomar una imagen y reemplazar la imagen de una imagen con ella. Pero en algunos casos onCreate se llama después de onActivityResult fue llamado y la nueva imagen se pierde.
La ayuda es muy apreciada.
- Diferencia entre Intent.ACTION_GET_CONTENT e Intent.ACTION_PICK
- Eliminación de una imagen de galería después de la toma de fotografías
- Android 5.1.1 por defecto la cámara devuelve la intención vacía en onActivityResult después de capturar la imagen
- Android: Crash after Image Crop cuando se actualiza la versión del sistema operativo a 5.1.1
- resultcode y datos null in onActivityresult
- ¿Cuál es la diferencia entre ActivityCompat y ContextCompat?
- Android: Actividad que se destruye después de llamar a Camera Intent
- androide muestran rectángulo en la cámara
En realidad, la cámara provoca el cambio de orientación en su actividad por lo que su actividad está siendo destruida y recreada.
Agregue esto en su archivo de manifiesto que evitará el cambio de orientación y su actividad no será destruida y recreada.
<activity android:name=".YourActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" > </activity>
Corrija la Orientación de su Actividad / Aplicación porque al retroceder / finalizar () la actividad y al mismo tiempo cambia de orientación, entonces la actividad se refresca y reinicia de nuevo automáticamente.
Parece que hay teléfonos que destruye la actividad al importar una imagen, como el Galaxy S3. Se menciona que si mi aplicación está en el modo de retrato que sucederá porque las imágenes están en modo horizontal. Por lo tanto, todas las sugerencias relacionadas con configChanges en el archivo de manifiesto no son aplicables a esta situación.
Lo que terminé haciendo es en lugar de combatir la onDestroy de la actividad (que causó el onActivityResult () del fragmento que no se llamaría después de onCreate ()) fue implementar onActivityResult () también en la actividad en sí y allí podría obtener el ruta de la imagen. Luego pasé ese camino al fragmento, una vez que se está creando, para procesamiento posterior. Por supuesto, tuve que decirle a mi aplicación, una vez que se ha recreado, que tiene que volver a la llamada fragmnet para procesar esa imagen