A atividade 1 usa startActivityForResult :
startActivityForResult(ActivityTwo, ActivityTwoRequestCode);
A Atividade 2 é iniciada e você pode executar a operação. Para fechar a Atividade, faça o seguinte:
Intent output = new Intent();
output.putExtra(ActivityOne.Number1Code, num1);
output.putExtra(ActivityOne.Number2Code, num2);
setResult(RESULT_OK, output);
finish();
Atividade 1 - ao retornar da atividade anterior, chamaráActivityResult :
@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);
}
}
ATUALIZAÇÃO: resposta ao comentário de Seenu69, na atividade dois,
int result = Integer.parse(EditText1.getText().toString())
+ Integer.parse(EditText2.getText().toString());
output.putExtra(ActivityOne.KEY_RESULT, result);
Então, na atividade um,
int result = data.getExtra(KEY_RESULT);