我们不生产代码, 只是大自然的搬运工. 首先致谢: https://blog.csdn.net/sbvfhp/article/details/26858441
场景描述: 在A activity(由于某些原因, 加载模式设置为SingleTask)中, startActivityForResult() 跳转到B Activity, 在A activity 的onActivity() 中接收B activity的结果.
现象分析: 在别的手机上测试正常, 但是在一把旧的手机API19, 版本4.4.2 的手机发现没有出现预期结果. 通过日志打印--> 执行startActivityForResult的时候onActivityResult提前执行.
问题探究: 目标activity的启动模式有关,如果目标activity的启动模式是android:launchMode="singleTask"则会提前执行,所以为了不让提前执行,目标activity必须使用默认的standed模式.
尝试解决: 修改目标Activity的启动模式, 为标准默认的standed模式
最终结果: 问题顺利解决
经验总结: 目标activity的启动模式有关,如果目标activity的启动模式是android:launchMode="singleTask"则会提前执行(在startActivityForResult() 时直接调用onActivityResult() ),所以为了不让提前执行,目标activity必须使用默认的standed模式.