ユーザーがそれを使用するためにログインする必要がある Web アプリ関連の Android アプリがあるとします。ユーザーはログイン画面アクティビティでログインし、他のアクティビティに進みます。ユーザーがアクティビティを開始するたびに、アプリはログイン資格情報を再度確認します (資格情報は中央データベースのどこかに保存されます)。
ユーザーがあるアクティビティから別のアクティビティにジャンプするときに、ユーザーのログイン資格情報がサービスから取り消されたとします。次にユーザーがアクティビティにアクセスすると、アプリは、ユーザーがアクセスできなくなったことを認識します。これで、アプリはユーザーをログイン画面のアクティビティに戻します。
しかし、ユーザーがアプリを使用したときにアプリが作成したアクティビティのスタックが既に存在するため、ログイン画面を取得するにはどうすればよいでしょうか。ログイン画面のアクティビティ (アプリのスタックの一番下にあるアクティビティである必要があります) に到達するまで、すべてのアクティビティを強制終了/破棄しますか?
それとも、新しいログイン画面アクティビティを開始して、そこに直接進みますか?
FLAG_ACTIVITY_CLEAR_TOP
または、インテントを介して渡されたログイン画面アクティビティを呼び出す必要がありますか?
ユーザーが 2 回目にログインできるようになった後 (資格情報が復元されたとしましょう)、アクティビティがスタック内の唯一のアクティビティである場合、戻るボタンを押すと、アプリに戻るのではなく、アプリから移動します。資格情報が取り消される前に彼が何をしていたか。これに対する最善のアプローチは何ですか?