0 votos

Desde la aplicación que estoy implementando accedo a la camara del dispositivo y a la galería para seleccionar una imagen de perfil pero el problema es que a veces mi activity hace finish y se me cierra la aplicación.

@Override
public void onClick(DialogInterface dialog, int item) {
    if (items[item].equals("Hacer foto")) {
        Intent intent = new Intent(
          android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivityForResult(intent, CAMARA);
    } else if (items[item].equals("Elegir de la galeria")) {
        Intent intent = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        intent.setType("image/*");
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivityForResult(
                Intent.createChooser(intent, "Select File"),
                SELECCIONAR_GALERIA);
   } else if (items[item].equals("Imagen por defecto")) {
            avatarV.setImageResource(R.drawable.avatar);
            avatar="";
            dialog.dismiss();
        }
    }
});

Aunque tengo implementado el metodo onActivityResult nunca llega ahí porque se me cierra antes...

He probado sin flags y con el que aparece en la captura de codigo. Puede que también os de una pista que esto lo estoy ejecutando desde un fragment...

Muchas gracias, un saludo!

por en Aplicaciones Móviles

1 Respuesta

0 votos
Comprueba que no haya ningún finish() que termine la Activity.

Prueba los parámetros del AndroidManifest.xml para Activities como "android:alwaysRetainTaskState=true" (información de todos parámetros en https://developer.android.com/guide/topics/manifest/activity-element.html)

También puedes guardar su estado, más información en: https://developer.android.com/training/basics/activity-lifecycle/recreating.html
por