こちらを参考にして、
intent.setFlagsメソッドの引数について
定数 | 内容 |
---|---|
FLAG_ACTIVITY_NEW_TASK | 常に新しいタスクで起動する ※デフォルト |
FLAG_ACTIVITY_SINGLE_TOP | 現在のActivityと同じアクティビティは起動しない |
FLAG_ACTIVITY_CLEAR_TOP | スタックをクリアしてから起動する |
FLAG_ACTIVITY_NO_ANIMATION | トランジションアニメーションを行わずに起動する |
FLAG_ACTIVITY_NO_HISTORY | スタックに追加せずに起動する |
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY | スタック内のActivityを利用して起動する(使いまわす) |
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | 履歴内の同一Acrivityを利用して起動する(使いまわす) |
FLAG_ACTIVITY_PREVIOUS_IS_TOP | 呼び出し元のActivityをタスクのトップと見なして起動する |
FLAG_ACTIVITY_REORDER_TO_FRONT | スタック内の同一Activityを最前面に移動させる |
画面を遷移するときなどにこれを渡せばいいらしい。使い方は以下のような、
// 引数1:自身のActivity、引数2:移動先のActivity名 Intent intent = new Intent(MainActivity.this, SubActivity.class); // オプションを指定 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Activityの移動 startActivity(intent);
あとタスクに関係するのであればマニフェストの、
android:launchMode=”singleTask”
なども考慮するといいかもしれない。
また一つ賢くなったね!!