BackStack上にあるActivityを再作成することなく再利用したい場合に、FLAG_ACTIVITY_REORDER_TO_FRONT
を使うことで可能となるが、2つのバグがあって採用できずにいる。1つは解決済みだがもう一方は現在も発生する。
RootViewではないのにバックボタン押下時にHomeに戻ってしまう
対象
4系を含めたいくつかのAndroid Versionで発生
対応
参考URLに回避コードあり
再現手順
注:カッコ内はバックスタックの状態
- アプリ起動。Activity Aを表示(A)
- 画面をタップしてBに遷移(A : B)
- 画面をタップしてAに遷移(B : A)
- 戻るボタンをタップするとHomeに戻ってしまう
参考
- android - Puzzling behavior with REORDER_TO_FRONT - Stack Overflow
- https://issuetracker.google.com/issues/36986021#c2
Android 6.0系でOnNewIntent後に画面をタップするとHomeに戻ってしまう
対象
Android6.0系。Nexus5 で確認。ただしエミュレータ及び6系の他端末では再現せず
対応
調査中
再現手順
- アプリ起動。Activity Aを表示(A)
- 画面をタップしてBに遷移(A : B)
- 画面をタップしてAに遷移(B : A)
- 画面をタップするとHomeに戻ってしまう。
参考
幸い前者は回避コードがあるが、後者にはなく、かつ致命的なので6系サポート中は FLAG_ACTIVITY_REORDER_TO_FRONT
が採用できない気が。現在イベント周りを調査中。