前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

FLAG_ACTIVITY_REORDER_TO_FRONTのバグについて

BackStack上にあるActivityを再作成することなく再利用したい場合に、FLAG_ACTIVITY_REORDER_TO_FRONT を使うことで可能となるが、2つのバグがあって採用できずにいる。1つは解決済みだがもう一方は現在も発生する。

RootViewではないのにバックボタン押下時にHomeに戻ってしまう

対象

4系を含めたいくつかのAndroid Versionで発生

対応

参考URLに回避コードあり

再現手順

注:カッコ内はバックスタックの状態

  1. アプリ起動。Activity Aを表示(A)
  2. 画面をタップしてBに遷移(A : B)
  3. 画面をタップしてAに遷移(B : A)
  4. 戻るボタンをタップするとHomeに戻ってしまう

参考

Android 6.0系でOnNewIntent後に画面をタップするとHomeに戻ってしまう

対象

Android6.0系。Nexus5 で確認。ただしエミュレータ及び6系の他端末では再現せず

対応

調査中

再現手順
  1. アプリ起動。Activity Aを表示(A)
  2. 画面をタップしてBに遷移(A : B)
  3. 画面をタップしてAに遷移(B : A)
  4. 画面をタップするとHomeに戻ってしまう。

参考

幸い前者は回避コードがあるが、後者にはなく、かつ致命的なので6系サポート中は FLAG_ACTIVITY_REORDER_TO_FRONT が採用できない気が。現在イベント周りを調査中。