Android 開発: アクティビティ起動モード

1. アクティビティの起動モードの設定方法

マニフェスト ファイルにアクティビティの起動モードを自分で追加できます (android : launchMode="standard")。これを記述しない場合、システムはデフォルトで標準モードに設定されます。

2. スタートモード

2.1. デフォルトの起動モード

標準の起動モードはスタックです。アクティビティを開くとそのアクティビティがスタックにプッシュされ、アクティビティを返すとスタックから出ます。

 アクティビティごとに異なる起動モードを設定できる

2.2. スタックトップ多重化起動モード

この時点で、作成するアクティビティがすでにスタックの最上位にある場合、新しいアクティビティは再作成されません。

 

アプリケーション シナリオ
複数のチャネルと複数のアプリケーションでアクティビティを起動する場合に適しています。この設定により、作成されたアクティビティが繰り返し作成されるのを防ぐことができ、アクティビティのほとんどは動的設定を通じて使用されます。

2.3. スタック内多重化起動モード

作成するアクティビティ スタックがすでに存在する場合は、そのアクティビティより上のすべてのアクティビティがポップアップ表示され、作成するアクティビティがスタックの最上位に表示されてインターフェイスに表示されます。

アプリケーション シナリオ
プログラムのメイン インターフェイス: メイン インターフェイスが複数回作成されることは絶対に望ましくありません。メイン インターフェイスの終了時にアプリ全体を終了するのが最良の効果です。
システム リソースを消費するアクティビティ: システム リソースを消費するアクティビティについては、リソースの消費を削減するために、それらを singleTask. モードに設定することを検討できます。

2.4. グローバル独自起動モード

グローバル ユニーク モードは、アクティビティがスタック内に単独で存在することを意味します。別のアクティビティ Activity2 (これもグローバル ユニーク モード) にジャンプすると、Activity2 用に別のスタックが作成され、メイン アクティビティはバックグラウンドにあります。新しいアクティビティが作成され、代わりにバックグラウンドでメイン アクティビティが起動されます。一度に存在できるグローバルに一意なアクティビティは 1 つだけです。 

 

3. ブーツロゴ

3.1 スタック内の既存のアクティビティを繰り返したくない場合は、ジャンプ インテントの起動フラグ、intent.setFlags(Intent.FLAG_aCTIVITY_CLEAR_TOP) を設定することもできます。

3.2 ソフトウェアのログイン ページの場合、ログインに成功すると、ログイン インターフェイスに戻らず、直接終了します。

この効果を実現するには、起動フラグ FLAG_ACTIVITY_CLEAR_TASK を設定する必要があります。ログイン後、このフラグはアクティビティ スタック内のすべてのインスタンスをクリーンアップし、新しいタスク用のアクティビティ スタックを作成します。

テント.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

おすすめ

転載: blog.csdn.net/Orange_sparkle/article/details/129105190