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:

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.

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

  • Guardar la imagen capturada en la carpeta específica de la tarjeta sd
  • No se puede obtener la imagen de la cámara con el selector de intenciones en 4.2.2 AVD
  • Problemas al trabajar con la cámara en onActivityResult
  • Cómo obtener la ruta de la imagen en onActivityresult (Intent data is null)
  • Android: BroadcastReceiver intención de detectar la foto de la cámara tomada?
  • Captura de imagen mientras el dispositivo está bloqueado con contraseña
  • OnActivityResult se llama tan pronto como se envía la intención de la cámara
  • ¿Cómo elegir "cámara frontal" en la nueva intención?
  • Apertura de la cámara en modo vertical con Intent
  • BitmapFactory no puede decodificar un mapa de bits de Uri después de las fotos tomadas en Android Nougat
  • ¿Por qué desaparece un conjunto de imágenes de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.