OnActivityResult nunca llamado

Hasta ahora, he utilizado la función startActivity con éxito y ahora que necesito usar el startActivityResult, tengo un problema.

Cuando se utiliza esta función, la actividad que espero que se inicie se inicia correctamente, pero parece que la función onActivityResult nunca se llama.

Aquí está mi código en la actividad de FriendPicker, para mostrar la actividad de MoodPicker:

Intent intent = new Intent(FriendPicker.this, MoodPicker.class); startActivityForResult(intent, 2); 

Y aquí está mi código en la actividad de MoodPicker:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); Log.i("in OnActivityResult", "Activity Result"); switch (requestCode) { case 2: Log.i("in OnActivityResult", "Activity Resut 2"); break; } } 

Y nada en mi archivo de registro se escribe (yo, por supuesto, comprobado que mi archivo de registro estaba funcionando correctamente y doble verificación con una salida de vista de texto).

¿Hay algo que me olvidé declarar en el archivo Manifest?

Gracias por adelantado.

¿ setResult() llamada setResult() en su clase MoodPicker?

Tuve el mismo problema y lo resolví: Sólo eliminar

 android:launchMode="singleInstance" 

En mi caso, no me di cuenta de que estaba llamando a startActivityForResult de una actividad que tenía el atributo android:noHistory establecido en true en el manifiesto. Por lo tanto, el onActivityResult nunca se llamó ya que no había ninguna instancia de actividad.

Si estoy leyendo este derecho, todo el código referenciado debe estar en "FriendPicker". En "MoodPicker" necesitas un código como este que establece el resultado y termina en sí mismo:

 this.setResult(SUCCESS_RETURN_CODE, i); this.finish(); 

Déjeme saber si esto ayuda…

Hay error en la API de Android. En startActivityForResult (intención, requestCode); Esta funktion funciona siempre que requestCode = 0. Sin embargo, si cambia el código de solicitud a otra cosa que no sea cero, el ApiDemos fallará (y OnActivityResult no será llamado). Encontrado aquí:

[EDIT: Enlace eliminado como grupo de google invadido por spam]

 android:noHistory="true" 

me gusta

 android:launchMode="singleInstance" 

Se detendrá onActivityResult de recibir resultado.

Actividad de FriendPicker

 Intent intent = new Intent(FriendPicker.this, MoodPicker.class); startActivityForResult(intent, 2); @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); Log.i("in OnActivityResult", "Activity Result"); switch (requestCode) { case 2: if (resultCode == Activity.RESULT_OK) { //optional Log.i("in OnActivityResult", "Activity Resut 2"); } break; } } 

Clase MoodPicker

 Intent intent = new Intent(MoodPicker.this, FriendPicker.class); setResult(Activity.RESULT_OK, intent); finish(); 

Tuve el mismo problema con onActivityResult (); Causa i didn't entender cómo se aplicará correctamente, aquí usted puede encontrar una buena explicación de cómo utilizar onActivityResult onActivityResult no funciona?

El error que había cometido fue que después de crear mi intención estaba llamando startActivity() lugar de startActivityForResult()

A veces los simples te matan 🙂

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.