Tôi có 2 hoạt động AAA và BBB. Tôi gọi BBB từ AAA bằng cách sử dụng startActivityForResult (Intent, int). Sau khi tôi làm xong với BBB, tôi nhấn nút Back để quay trở lại AAA. Trong BBB, tôi ghi đè onPause() và đặt kết quả bằng cách sử dụng setResult (RESULT_OK).kết quả không được đặt trong onPause() sử dụng setResult() khi nhấn nút Quay lại
Trong AAA, tôi kiểm tra kết quả của mình trong onActivityResult (int requestCode, int resultCode, Intent data) và tôi tiếp tục nhận được RESULT_CANCELLED.
Sau khi chi tiêu đôi khi trên google/stackoverflow, tôi đã tìm ra rằng nếu tôi ghi đè onBackPressed() và đặt kết quả trong đó, thì nó hoạt động hoàn toàn tốt.
Điều tôi không hiểu là, tại sao kết quả không được đặt trong onPause(), khi trên thực tế onPause() được gọi sau onBackPressed(). Tôi đã trải qua các luồng hoạt động trong tài liệu Dev và tôi khá rõ ràng về những gì đã được đề cập ở đó.
Bất kỳ ai có bất kỳ ý tưởng nào về hành vi này hoặc có thể giải thích rõ hơn về hành vi này?
Bản sao của http://stackoverflow.com/questions/2679250/setresult-does-not-work-when-back-button-pressed – pjv