Activity与Fragment的onActivityResult细节
在Fragment中跳转到另一个Activity,返回时是调用Activity的onActivityResult呢?还是调用Fragment的onActivityResult呢?
我当然知道,只不过我再碰到时忘记了,然后每次忘记都要从新去网上找,不如做个Test然后记录下来。
情况一
【Activity与Fragment的onActivityResult细节】如果在Fragment中使用的是getActivity().startActivityForResult()
那么返回时只会调用Activity的onActivityResult
文章图片
情况二
如果在Fragment中使用的是startActivityForResult()
那么返回时会先调用Fragment的onActivityResult,再调用Activity的onActivityResult。
关键是请求参数requestCode在两个地方还不同,我测试3次,结果如下:
文章图片
文章图片
文章图片
可以发现在activity中的requestCode 是 requestCode + 65536
所以如果你要在两个地方都做操作的话注意一下这个requestCode 。
最后科普一下这个65536是什么意思: 65535是16位二进制能表示的最大数值,也就是0xFFFF
源码这次就不走了,真的没时间走源码
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越