startActivityForResult() and onActivityResult() is your solution.
In ActivityA . Use startActivityForResult() -
Intent i = new Intent(this, ActivityB.class); i.putExtra("Value1", 1); startActivityForResult(i, requestCodeForOperation);
And in your ActivityB, get your data sent from ActivityA . How -
int value1 = getIntent().getExtras().getInt("Value1", 0);
Do your operation and use setResult() to add the result of the operation and finish() . like-
Intent returnIntent = new Intent(); returnIntent.putExtra("result",result); setResult(Activity.RESULT_OK,returnIntent); finish();
And, of course, you need to implement onActivityResult() on ActivityA to get the returned data from ActivityB . How -
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == requestCodeForOperation) { if(resultCode == Activity.RESULT_OK){ String result=data.getIntExtra("result", 0); } } }
source share