El requestCode le ayuda a identificar desde qué intención regresó. Por ejemplo, imagine que su Actividad A (Actividad principal) podría llamar Actividad B (Solicitud de cámara), Actividad C (Grabación de audio), Actividad D (Seleccionar un contacto).
Cuando las actividades posteriores llamadas B, C o D finalizan y necesitan pasar datos a A, ahora necesita identificar en su onActivityResult de qué actividad está volviendo y poner su lógica de manejo en consecuencia.
public static final int CAMERA_REQUEST = 1;
public static final int CONTACT_VIEW = 2;
@Override
public void onCreate(Bundle savedState)
{
super.onCreate(savedState);
// For CameraRequest you would most likely do
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
// For ContactReqeuest you would most likely do
Intent contactIntent = new Intent(ACTION_VIEW, Uri.parse("content://contacts/people/1"));
startActivityForResult(contactIntent, CONTACT_VIEW);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == Activity.RESULT_CANCELED) {
// code to handle cancelled state
}
else if (requestCode == CAMERA_REQUEST) {
// code to handle data from CAMERA_REQUEST
}
else if (requestCode == CONTACT_VIEW) {
// code to handle data from CONTACT_VIEW
}
}
Espero que esto aclare el uso del parámetro.
Aquí están los documentos de desarrollo: http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29 – bschultz