AndroidのActivity - LauncherMode
Andoridはアプリ起動時には
1. Taskを生成
2. アプリの入り口Activity起動(AdnroidManifest.xmlのMAIN指定されたもの)
開発者はTaskのアクセスすることができなく、
ただActivityのgetTaskId()メソッドで所在中のTaskIDを取得する。
起動モードは
ActiviyとTask間のロード関係を制御する。
【Activity起動サンプル】
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
standardモード(デフォルトモード)
・常に新しいインスタンスを生成する
・同じTaskキュー内に存在する
上記サンプルコードをボタンイベントで3回実装した場合、下記のようになります
singleTopモード
・standardと基本同じだが、
・・Taskキュー内のトップの場合、新しいインスタンスを生成しなくそのまま使用する
・・Taskキュー内のトップのでない場合、新しいインスタンスを生成する
singleTaskモード
・同じTaskキュー内で一つのみ存在する。
・・起動するActivityがTaskキュー内に存在しない場合、Activityを生成しTaskキューのトップに入れる
・・Taskキュー内のトップの場合、singleTopと同じ
・・Taskキュー内のトップのでない場合、起動Activity上にあるActivityのすべてTaskキューから抜き出す
singleInstanceモード
・どのTaskキュー内でもいいので、Activityは一つだけインスタンスを生成する
・・ActivityがどのTask内にもない時、新規TaskキューにActivityの生成して入れる
・・どのアプリ、どのTaskキューでも存在する場合、システムはそのTaskの前面に移動させ、Activityを表示する
※このモードは、Taskキュー内では常に一つのActivityのみ存在する。