2011-05-03 4 views

Respuesta

1

startActivityForResult() le permite iniciar la actividad y obtener algunos datos de nuevo. Imagina que tienes actividad de selector de archivos. Puede iniciarlo y, cuando el usuario elija el archivo, el resultado se devuelve a la actividad original.

Además, se puede usar si simplemente desea asegurarse de que la segunda actividad haya logrado algo.

Se obtiene el código de resultado en el método onActivityResult:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // Result OK.d. 
     if (requestCode == resultCode) { 
      // do something good 
     } 
    } 
+1

Seguramente el requestCode devuelto es el mismo valor devuelto por el que se recibió cuando invocó startActivityForResult. El código de resultado suele ser algo así como RESULT_OK o RESULT_CANCELED. No veo por qué los probarías por la igualdad? – NickT

+0

Sí, eso no tiene sentido. Me gusta mantener constantes de requestCodes que utilizo para engendrar el intento en startActivityForResult y luego verificarlos en un bloque switch en onActivityResult. – Ian

3

Llamando startActivityForResult con Activity2, se le notificará su actividad actual cuando el Activity2 ha terminado (espalda botón pulsado), y de esta manera también se puede conseguir información de él.
Esta notificación se puede detectar anulando el método onActivityResult de su actividad.

Este artículo sobre Android startActivity and startActivityForResult podría valer para mirar.

Cuestiones relacionadas