Другим подходом было бы использование StartActivityForResult (...) для запуска каждого действия, и действия должны вызывать setResult () перед finish (). Затем в методе onActivityResult (...) каждого Activity вызывается метод finish (), если намерение не равно нулю.
Это создаст полный стек и автоматически завершит их все по окончании последнего.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return; // back button, resume this activity
}
// Propagate result down the stack.
setResult(0, data);
finish();
}
Это дает вам немного больше контроля и позволяет исходному действию получать результат через onActivityResult, а не намерение создания, что может быть более интуитивно понятным, если исходный запрос имеет другое состояние, которое вы хотите сохранить (в его начальном намерении, в частности, ).