アクティビティ遷移の管理: すべてのアクティビティを閉じて新しい画面にリダイレクトする
Android 開発では、複数の画面間のナビゲーション フローを処理することが重要です。一般的なシナリオには、アクティブな画面をすべて閉じてユーザーをログイン画面にリダイレクトするログアウト ボタンが含まれます。
課題
提供されたコード フローは、複数の画面で構成されています。ホーム画面からアクセス: ホーム ->画面1 ->画面2 ->画面3 ->画面4 ->画面 5. 目標は、これらの画面のいずれかからクリックすると、既存の画面をすべて閉じて、新しい「ログイン」画面を開くログアウト ボタンを追加することです。
解決策
この課題に対処するには、次のコードを実装できます。
<code class="java">Intent intent = new Intent(getApplicationContext(), Home.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);</code>
このコードは、「ホーム」画面に移動するインテントを作成し、Intent.FLAG_ACTIVITY_CLEAR_TOP フラグを追加します。このフラグにより、「ホーム」画面の上部にあるすべてのアクティビティがスタックから確実にクリアされます。
説明
ログアウト ボタンがクリックされると、上記のコードは次のようになります。実行されました。 FLAG_ACTIVITY_CLEAR_TOP フラグを使用して「ホーム」画面を起動します。このフラグは、タスク スタックをクリアし、ルート アクティビティとして「ホーム」画面を表示するようにシステムに指示します。
その結果、画面 1 から画面 5 までのフロー内のすべてのアクティビティがアクティビティ スタックから削除されます。その後、ユーザーは「ログイン」画面に直接リダイレクトされます。
追加の考慮事項
必要に応じて、インテントに追加のパラメーターを追加して、このソリューションを拡張できます。 「ホーム」画面アクティビティでこれを使用して、「ホーム」画面の終了や「ログイン」画面の再起動などの追加アクションを実行します。
互換性
です。このソリューションでは、Android API レベル 1 で利用可能な Intent.FLAG_ACTIVITY_CLEAR_TOP を使用することに注意してください。これは、このアプローチが 1.6 などの古い Android バージョンでも使用できることを意味します。
以上がAndroid で既存のアクティビティをすべて閉じて新しい画面にリダイレクトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。