Вы можете использовать startActivityForResult вместо startActivity в SecondActivity, когда собираетесь запускать ThirdActivity.
Intent i = new Intent(this, ThirdActivity.class);
startActivityForResult(i, 1);
А когда вы заканчиваете свою третью деятельность
Intent returnIntent = new Intent();
returnIntent.putExtra("activity_finish",true);
setResult(Activity.RESULT_OK,returnIntent);
finish();
Если вы используете startActivityForResult () , то он возвращает обратный вызов в Activity, которая его запустила, поэтому, как только ThirdActivity завершит работу, он вернется к onActvityResult () в SecondActivity. Где вы должны проверить код результата и запросить код:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
boolean isActivityFinish=data.getBooleanExtra("activity_finish");
if(isActivityFinish){
// finish your Second Activity here
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
Для получения дополнительной информации: Как управлять `startActivityForResult` на Android?