為に#1 Pressing back in Activity D should navigate user out of the application
ActivityD では、onBackPressed または onKeyDown メソッドをオーバーライドしてから、フラグ FLAG_ACTIVITY_CLEAR_TOP と Exit フラグを使用して ActivityA を開始できます (putExtra メソッド経由)。ActivityA では、Exit フラグの値を取得し、Exit フラグが true に設定されている場合は finish() を呼び出すことができます。
アクティビティ A の onCreate メソッドでは、次のことを行う必要があります。
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
ActivityD の onBackPressed または onKeyPressed メソッドで、
intent = (this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
為に#2 Exit from ActivityA
onBackPressed または onKeyPressed で finish() メソッドを呼び出すだけです。