In activity A:
Intent intent = new Intent(this, B.class);
startActivityForResult(intent, 1);
....
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1){
if (resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
String code = "";
try{
code = bundle.getString("code");
} catch (Exception e){
e.printStackTrace();
}
if (!code.equals("")){
//do something
}
}
}
In Activity B:
Intent intent = new Intent(this, C.class);
startActivityForResult(intent, 1);
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1){
if (resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
String code = "";
try{
code = bundle.getString("code");
} catch (Exception e){
e.printStackTrace();
}
if (!code.equals("")){
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("code", code);
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish();
}
}
}
Then in Activity C at some point:
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("code", code);
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish();
I hope this can help you.