▼Androidメモ▼
アクティビティの起動モードと起動フラグ

起動モード
グループ standard singleTop singleTask singleInstance
他アクティビティに自アクティビティを
同一タスクとして追加
可能

startActivity()を呼び出したタスクに積まれる。
FLAG_ACTIVITY_NEW_TASKで
別タスクとして追加も可能
不可能

必ずルートアクティビティとなる
インスタンスの複数生成 可能 不可能
自アクティビティに他アクティビティを
同一タスクとして追加
可能 不可能

startActivityForResult()を使うと
すぐにRESULT_CANCELが戻る。
起動時のインスタンス生成 常に生成 スタック最上位に
同一アクティビティが
存在する時は生成しない
スタック内に同じアクティビティが
存在する時は生成しない

起動フラグ
定数 説明
FLAG_ACTIVITY_BROUGHT_TO_FRONT 既存アクティビティ(singleTask)を最前面に呼び出す
システムによって設定される。
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET このフラグは呼び出すアクティビティをマークする。
これによって、タスクリセット時にマークしたアクティビティより上のアクティビティがスタックから削除されるようになる。
タスクはFLAG_ACTIVITY_RESET_TASK_IF_NEEDEDで再開した時にリセットされる。このフラグはユーザーがホーム画面、メインメニュー、最近のアプリからタスク再開した時、システムによって設定される。

FLAG_ACTIVITY_CLEAR_TOP 起動するアクティビティが現在のスタック内に存在する時、
そのアクティビティより上の全アクティビティをスタックから削除する。

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 通常はアクティビティを起動すと、「最近起動したアクティビティのリスト(ホームボタンの長押しを介してアクセス可能)」に表示されるが、このフラグで起動したアクティビティは表示されない。
FLAG_ACTIVITY_FORWARD_RESULT startActivityForResult()の結果の指定を別のアクティビティに委ねる時にこのフラグを指定。


FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY このフラグは「最近起動したアクティビティのリスト」から起動されていることを示す。
システムによって設定される。
FLAG_ACTIVITY_MULTIPLE_TASK このフラグはFLAG_ACTIVITY_NEW_TASKと一緒に設定した時、新しいタスクが常に生成される。
一緒に設定しない時は効果なし。
FLAG_ACTIVITY_NEW_TASK このフラグは、FLAG_ACTIVITY_MULTIPLE_TASKが一緒に設定されていないかつ、同じタスクアフィニティに存在しない時は新しいタスクを生成する。存在する時はそのタスクを利用する。
FLAG_ACTIVITY_NO_ANIMATION このフラグはトランジションアニメーションを無効にする。
FLAG_ACTIVITY_NO_HISTORY このフラグを指定すると、タスクのスタックに保持されていないようになる。
ユーザが戻るボタンでこのフラグを指定したアクティビティに戻ってきた時、
スタックに保存されていないため、結果的にスキップされる。
FLAG_ACTIVITY_NO_USER_ACTION このフラグはユーザー操作でないアクティビティ遷移であることを示すために使われる。
例えば、電話を受信した時に自動的に起動される時に指定される。
これは呼び出し元のアクティビティのコールバックメソッドonUserLeaveHint()の呼び出しが抑制されることを意味する。
FLAG_ACTIVITY_PREVIOUS_IS_TOP 呼び出し元をタスクのトップと見なして起動
FLAG_ACTIVITY_REORDER_TO_FRONT このフラグを指定することで、スタック内のアクティビティを最前面に移動。

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 新規タスク生成または既存タスクの最前面呼び出し時以外の時、タスクをリセットする。スタック内にFLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETで起動されたアクティビティが存在する時、そのフラグ仕様に応じてクリアされる。
FLAG_ACTIVITY_SINGLE_TOP スタック最上位と同じアクティビティを起動しようとした時は起動しない


−戻る−