对于 A、B 和 C,您需要调用startActivityForResult()
. 这允许您在启动Activity
完成时收到通知。
来自 A:
Intent i = new Intent(this, B.class);
startActivityForResult(i, B_ACTIVITY);
...
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if((resultCode == RESULT_OK) && (requestCode == B_ACTIVITY)) {
// handle success
}
}
来自 B(同样来自 C)
Intent i = new Intent(this, C.class);
startActivityForResult(i, C_ACTIVITY);
...
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if((resultCode == RESULT_OK) && (requestCode == C_ACTIVITY)) {
setResult(RESULT_OK);
finish();
}
}
当你在 D 中完成后,打电话给你setResult(RESULT_OK);
,finish()
一切都会如你所愿。后退按钮将自动正确处理。