美文网首页安卓开发笔记安卓实用知识
Android中onActivityResult方法不执行的解决

Android中onActivityResult方法不执行的解决

作者: 路过麦田 | 来源:发表于2016-03-07 21:35 被阅读2682次

前两天在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方法不执行的解决

    本文链接:https://www.haomeiwen.com/subject/iwmokttx.html