Android中onActivityResult方法不执行的解决方案


前两天在APP中实现图片转发功能时遇到一个问题,ActivityA中以startActivityForResult方式来启动ActivityB,然后在ActivityB需要要转发的群或个人,然后setResult(Activity.RESULT_OK, intent)并finish掉ActivityB,但是ActivityA中的onActivityResult方法并未执行。

有人说在启动ActivityB时传入的requestCode不能为负数,否则onActivityResult方法是不会执行的,而Activity.RESULT_OK的初始值为-1,查看了Activity源码之后发现确实是这样的,于是将requestCode设置为大于0的整数值,但结果还是一样,onActivityResult方法不执行,后来经过排查,发现ActivityB的启动模式设置为了singleTask,将其改为默认模式后onActivityResult方法就可以执行了。

需要注意的是:

只有当前Activity被finish掉,结果才会被发送给上一个Activity的onActivityResult去处理。

你可能感兴趣的:(Android中onActivityResult方法不执行的解决方案)