[解決済み] Androidで履歴スタックをすべて消去し、新しいアクティビティを開始する
質問
スタック上でアクティビティを開始し、その前の履歴をすべてクリアすることは可能ですか?
状況
A->B->C または B->C のいずれかのアクティビティスタックがあります(画面 A はユーザーのトークンを選択しますが、多くのユーザーは単一のトークンを持っているだけです)。
画面Cでは、ユーザーが かもしれません そのため、アプリケーションは、画面Aがすでにスタックにあるかどうかに関係なく、画面Aに移動させたいと考えています。私のアプリケーションでは、画面Aはスタック上の唯一のアイテムであるべきです。
備考
他にも似たような質問がたくさんありますが、この質問に正確に答えているものは見つかっていません。私は
getParent().finish()
- を使用すると、常にヌルポインタの例外が発生します。
FLAG_ACTIVITY_CLEAR_TOP
は、アクティビティがすでにスタック上にある場合にのみ動作します。
解決方法は?
APIレベル11では、このために新しいIntent Flagが追加されました。 Intent.FLAG_ACTIVITY_CLEAR_TASK
一応、これを使ってください。
ジャワ
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
コトリン
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
API lvl <= 10については、残念ながら、まだきれいな解決策は見つかっていません。 その DontHackAndroidLikeThis"解決法 はまさに純粋なハッカー行為です。そんなことしちゃダメですよ :)
編集してください。
の通りです。
ベン・ピアソン
のコメントにより、API <=10 では
インテンションコンパット
クラスがあります。また
IntentCompat.FLAG_ACTIVITY_CLEAR_TASK
フラグでタスクをクリアします。そのため、APIレベル11以前にも対応することができます。
関連
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
Android.mk:7: *** セパレータがありません。
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] ボタンクリックで新しいアクティビティを開始する方法
-
[解決済み] アンドロイド バックスタックをクリアする
-
[解決済み】前のアクティビティに戻るのを防ぐには?
-
[解決済み】ログアウト時にアクティビティ履歴をクリアすると、「戻る」ボタンでログイン中のみのアクティビティを開けなくなる。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
NetworkOnMainThreadException
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
GoogleMapと連携し、位置情報の取得が可能
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する
-
[解決済み] Androidです。バックスタックから以前のアクティビティをすべて削除する