finishのstartActivityについて


A,B,C,Dの4つのActivityが現在順番に開いていると仮定し,現在Dにある.
1、B(新しい)を起動し、D、C、B(古い)を閉じる.
Intent intent = new Intent(this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
startActivity(intent);  

A、B、C、DはA、Bとなる.Bの起動モードがデフォルトであれば.
2、Bに戻り、D、Cを閉じる
Intent intent = new Intent(this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);  

A、B、C、DはA、Bとなる.BのonNewIntent()メソッドが呼び出されます.
3、Bにジャンプしますが、新しいBは起動しません.
Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

A、B、C、DはA、C、D、Bとなる.Bにシングルスタートモードが設定されていることに相当します.
4、普通に新しくBを起動する
Intent intent = new Intent(this, B.class);
startActivity(intent);

A、B、C、DはA、B、C、D、Bとなる.反復状況をもたらします.