Activity与Fragment的onActivityResult细节

简介: 在Fragment中跳转到另一个Activity,返回时是调用Activity的onActivityResult呢?还是调用Fragment的onActivityResult呢?我当然知道,只不过我再碰到时忘记了,然后每次忘记都要从新去网上找,不如做个Test然后记录下来。

在Fragment中跳转到另一个Activity,返回时是调用Activity的onActivityResult呢?还是调用Fragment的onActivityResult呢?
我当然知道,只不过我再碰到时忘记了,然后每次忘记都要从新去网上找,不如做个Test然后记录下来。

情况一

如果在Fragment中使用的是getActivity().startActivityForResult()
那么返回时只会调用Activity的onActivityResult

img_a97d60a83a49f186117ff7f5342eabad.png

情况二

如果在Fragment中使用的是startActivityForResult()
那么返回时会先调用Fragment的onActivityResult,再调用Activity的onActivityResult。
关键是请求参数requestCode在两个地方还不同,我测试3次,结果如下:

img_6e1c551fec53247e462fc7082701440e.png
img_9a3debdb2045e4853ab1dcd9b209cbaa.png
img_9cb6df557f823e72919248ac3b00a466.png

可以发现在activity中的requestCode 是 requestCode + 65536
所以如果你要在两个地方都做操作的话注意一下这个requestCode 。

最后科普一下这个65536是什么意思: 65535是16位二进制能表示的最大数值,也就是0xFFFF

源码这次就不走了,真的没时间走源码

目录
相关文章
|
26天前
activity中加载fragment的控件 在fragment 中调用activity中的控件
activity中加载fragment的控件 在fragment 中调用activity中的控件
10 0
|
26天前
|
Android开发
RecyclerView的简单使用在activity和fragment中
RecyclerView的简单使用在activity和fragment中
18 0
|
8月前
|
存储 Android开发
Android startActivityForResult和onActivityResult的基本用法
Android startActivityForResult和onActivityResult的基本用法
56 0
|
9月前
|
XML 缓存 Android开发
QMUI实战(二)—Activity 和 Fragment,我们该选择谁?
在一开始,官方只提供了 Activity 来作为 UI 界面的载体,因此我们也别无选择,只能用它。而在 Android 3.0 后,Fragment 也面世了,它一开始是用于适配平板的,以邮件列表与详情的适配为例,手机端够小,因此开始展示列表,点击进入详情,而平板够大,则可以列表显示在左侧,详情显示在右侧,点击列表只是切换详情。对于这种适配场景,列表页和详情页必须在同一个 Activity 里了,而这便是我所知道的 Fragment 诞生的场景了。
116 0
|
索引
解决Fragment多层嵌套时onActivityResult无法正确回调的问题
解决Fragment多层嵌套时onActivityResult无法正确回调的问题
Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。
在oneActivity中实现跳转到MainActivity        //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent MainActivity = new Intent();         MainActivity .
1252 0