AAA と BBB の 2 つのアクティビティがあります。startActivityForResult(Intent, int)を使用して AAA から BBB を呼び出します。BBB が終わったら、戻るボタンを押して AAA に戻ります。BBB では、 onPause() をオーバーライドし、setResult(RESULT_OK)を使用して結果を設定します。
AAA で、onActivityResult(int requestCode, int resultCode, Intent data)で結果を確認すると、RESULT_CANCELLED が取得され続けます。
google/stackoverflow にしばらく費やした後、onBackPressed()をオーバーライドして結果を設定すると、まったく問題なく動作することがわかりました。
私が理解できないのは、実際にはonPause()がonBackPressed()の後に呼び出されるのに、なぜ結果がonPause()に設定されないのかということです。私は Dev docs のアクティビティ フローを確認しましたが、そこに記載されている内容についてはかなり明確です。
誰かがこの動作について何か考えを持っているか、それをよりよく説明できますか?