アプリケーションに複数のアクティビティがあります。それらのうちの2つはLoginActivityであり、2つ目はSettingsActivityです。ユーザーは設定アクティビティにログインし、SettingsActivityからアプリケーションからログアウトします。アプリケーションのフローは、LoginActivity->HomeActivity->SettingsActivityです。ユーザーは、設定アクティビティでアプリケーションからログアウトを呼び出します。設定アクティビティでfinishを呼び出し、LoginActivityへのインテントを作成します。これは正常に機能しますが、loginactivityを押すと、ホームアクティビティが表示されます。LoginActivityが表示されたら、戻るボタンでアプリケーションをアプリケーションから削除する必要があります。これどうやってするの ?
3 に答える
The answer lies in FLAG_ACTIVITY_CLEAR_TOP. All you need to do is set the flag to your intent like shown below
Intent i = new Intent(this, LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
That should pretty much do what you want it to do.
I believe this is what you are looking for:
How to clear the Android Stack of activities?
I wouldnt get too hung up on the fact that it doesnt actually finish() your LoginActivity - this is actually a pretty normal pattern to follow.
これを機能させるには、.FLAG_ACTIVITY_CLEAR_TASK を使用する必要がありました。これは API バージョン 11 以降でサポートされていると読みましたが、以前のすべてのバージョンでサポートされますか。第二に、Javaコードではなくマニフェストファイルからこれらを使用するにはどうすればよいですか? Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);