[解決済み] アンドロイド バックスタックをクリアする
2022-03-15 22:48:31
質問
Androidで、A,B,Cと言ったアクティビティがあります。
Aで、このコードを使ってBを開く。
Intent intent = new Intent(this, B.class);
startActivity(intent);
Bでは、このコードを使ってCを開いています。
Intent intent = new Intent(this, C.class);
startActivity(intent);
ユーザーがCのボタンをタップしたとき、Aに戻り、バックスタックをクリアしたい(BとCの両方を閉じる)。そこで、ユーザーが戻るボタンを使用すると、BとCが表示されなくなるので、次のことを試しています。
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
しかし、アクティビティAに戻ったときに戻るボタンを使うと、BとCが表示されたままになっています。
解決方法は?
を追加してみてください。
FLAG_ACTIVITY_NEW_TASK
のドキュメントで説明されているように
FLAG_ACTIVITY_CLEAR_TOP
:
この起動モードは、次のように使うこともできます。 との併用が効果的です。 FLAG_ACTIVITY_NEW_TASK: を使用する場合。 タスクのルート・アクティビティを開始すると、そのタスクの 現在実行中のすべての そのタスクのインスタンスを をフォアグラウンドにした後、そのフォアグラウンドをクリアする。 ルート状態です。これは特に便利です。 を起動するときなど アクティビティを通知 マネージャーを使用します。
というわけで、起動するためのコード
A
となります。
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
CurrentActivity.this.finish(); // if the activity running has it's own context
// view.getContext().finish() for fragments etc.
関連
-
Android ProgressBarの色を変更する
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] AndroidでstartActivityForResultを管理する方法
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
Android開発で「Attempt to invoke virtual method 'XXX()' on null object reference」というヌルポインター例外に遭遇する。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
repo: コマンドが見つかりません
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
[解決済み】ログアウト時にアクティビティ履歴をクリアすると、「戻る」ボタンでログイン中のみのアクティビティを開けなくなる。
-
[解決済み] Androidです。バックスタックから以前のアクティビティをすべて削除する
-
[解決済み] アンドロイド アクティビティスタックを消去する