La Actividad 1 usa startActivityForResult :
startActivityForResult(ActivityTwo, ActivityTwoRequestCode);
La Actividad 2 se inicia y puede realizar la operación, para cerrar la Actividad haga esto:
Intent output = new Intent();
output.putExtra(ActivityOne.Number1Code, num1);
output.putExtra(ActivityOne.Number2Code, num2);
setResult(RESULT_OK, output);
finish();
Actividad 1: al regresar de la actividad anterior, se llamará aActivityResult :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ActivityTwoRequestCode && resultCode == RESULT_OK && data != null) {
num1 = data.getIntExtra(Number1Code);
num2 = data.getIntExtra(Number2Code);
}
}
ACTUALIZACIÓN: respuesta al comentario de Seenu69, en la actividad dos,
int result = Integer.parse(EditText1.getText().toString())
+ Integer.parse(EditText2.getText().toString());
output.putExtra(ActivityOne.KEY_RESULT, result);
Luego, en la actividad uno,
int result = data.getExtra(KEY_RESULT);