1、首先,返回的Activity必须使用startActivityForResult启动。
2、其次,在返回的Activity中必须保证setResult方法在finish方法之前执行,否则onActivityResult不会执行。
由A启动B,在由B返回A时,执行过程如下:
B---onBackPressed
B---finish
B---onPause
A---onActivityResult
A---onRestart
A---onStart
A---onResume
B---onStop
B---onDestroy
所以,不能再B的onPause、onStop、onDestory方法里执行setResult方法,因为这样是没有意义的。
3、再次,必须保证requestCode >= 0,否则onActivityResult不会执行。
4、最后,必须保证android:launchMode属性值不为singleInstance,否则onActivityResult不会执行。
时间: 2024-10-29 07:52:31