调用startActivityForResult后onActivityResult被立即触发

需求:

ActivityA中吊起另外一个ActivityB,在ActivityB中做进一步处理,finish之后要拿到相应结果,在ActivityA中做进一步处理。

方案:

ActivityA中调用startActivityForResult(Intent intent, int requestCode)方法,定义requestCode,在onActivityResult(int requestCode, int resultCode, Intent data)根据requestCode来识别对应的回调做处理。

问题:

但是面对这个很简单的需求出了一个问题就是:在ActivityA中调用startActivityForResult(Intent intent, int requestCode)之后onActivityResult(int requestCode, int resultCode, Intent data)方法被立即触发了(是的在ActivityB启动之前),这就和可怕了,我根本就拿不到这个回调啊!

处理:

经排查,如果被启动的Activity的launch modeSingleInstacneSignleTask,且不论是从Activity还是从Fragment启动该Activity都会造成这种情况,所以根据实际情况修改launch mode即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容