1. ホーム
  2. android

[解決済み] Androidです。バックスタックから以前のアクティビティをすべて削除する

2022-05-14 04:53:08

質問

をクリックすると ログアウト ボタンをクリックすると プロフィール に移動させたいのですが。 ログイン ページに移動させ、そこで新しい認証情報を使用する必要があります。

したがって、私はこのコードを使用しました。

Intent intent = new Intent(ProfileActivity.this,
        LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

の中に onButtonClick を追加してください。

しかし、問題は、Login Activity上でデバイスバックボタンをクリックすると、ProfileActivityに移動してしまうことです。LoginActivity の device back ボタンを押すと、アプリケーションが終了するものと思っていたのですが。

私は何を間違えているのでしょうか。

また、私は android:launchMode="singleTop" をマニフェストに追加しました。 ログインアクティビティ

ありがとうございました。

どのように解決するのですか?

提案された解決策 はこちら は私のために働いた。

Java

Intent i = new Intent(OldActivity.this, NewActivity.class);
// set the new task and clear flags
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

コトリン

val i = Intent(this, NewActivity::class.java)
// set the new task and clear flags
i.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(i)

ただし、APIレベル>=11が必要です。