AとBというアクティビティがありまして、A1→B1→A2→B2→A3という順番に実行した状態で、
AもBもアクティビティが積み重なった状態からB1までリターンキーで戻ったときの処理がおかしいので、
Bにログを出す処理を入れてデバッグモードで動作を調べたところ、次のような動作をしていました。
--ここから--
onCreate B1作成時
onResume B1作成時
onSaveInstance B1からA2移動時
onCreate B2作成時
onResume B2作成時
onSaveInstance B2からA3移動時
onResume A3からB2移動時
onDestroy B2からA2移動時
onResume A2からB1移動時
--ここまで--
B1まで戻ってきたときですので、これで問題はありませんよね。
しかし、実際にデバッグではなく、通常起動をすると次のような動作をします。
--ここから--
onCreate B1作成時
onResume B1作成時
onSaveInstance B1からA2移動時
onCreate B2作成時
onResume B2作成時
onSaveInstance B2からA3移動時
onResume A3からB2移動時
onResume ?
onDestroy ?
--ここまで--

ご覧のとおり、最後の2行の動作が違っています。Aにログを出す処理は一切いれていませんので、B2のonDestroyがB1のonResumeの後に走っているようなのです。
手順に間違いが無いか何度か確認しましたが同じ動作で、自力で調べたのですがデバッグモードか否かでライフサイクルが変わるといった現象が出てこず、困っています。
何か原因や対処はわからないでしょうか。