位置: 编程技术 - 正文

Fragment里onActivityResult()无回调的问题

编辑:rootadmin

推荐整理分享Fragment里onActivityResult()无回调的问题,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

最近工作,接手了项目,测试发现有一个bug,就是在Fragment中使用startActivityForResult(Intent intent,int requestcode) 方法调用其他activity,重写onActivityforResult方法,但是onActivityforResult并没有被调用。

这个问题的解决思路就是两个方面。

先从onActivityforResult入手,在方法第一句打印log,发现没有被执行,说明问题发生在这之前。

再从startActivityForResult入手,调用的Activity正确被调用,并且一直执行到setResult方法,查看responseCode也没有问题,说明不是被调用的Activity的问题。

那么问题就应该发生在startActivityForResult上了。

这是原来错误的写法,查看源码,fragment的getActivity方法返回了一个FragmentActivity的对象;

此时调用的是FragmentActivity的startActivityForResult方法。

问题就发生在这里。

正确的写法是直接在Fragment中使用Fragment的startActivityForResult方法。

Fragment里onActivityResult()无回调的问题

修改后正常调用了onActivityforResult。

查看Fragment.startActivityForResult()方法,源码如下:

也就是说在fragment中的调用顺序是:

1.Fragment.startActivityForResult()

2.FragmentActivity.startActivityFormFragment()

3.Activity.startActivityForResult()

而如果使用了getActivity()的调用顺序是:

1.FragmentAcitvity.startActivityForResult()

2.Activity.startActivityForResult()

这就是二者的区别,导致了onActivityResult()不能调用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

[置顶] Android 动画实现-原来如此简单 Android动画相关基本知识可以参考:Android动画初步、Android动画TweenAnimation、Android动画FrameAnimation、Android属性动画(PropertyAnimation)、Android动画PropertyAnimat

[置顶] Android横向滑动导航菜单 1.效果图:2.项目地址:

android studio,gradle的问题 这一周在三个地方都分别安装了不同版本的androidstudio,导入相同的项目,都发生了build失败的问题。其中在A地修改的方法是降低了sdk版本;在B地采用的

标签: Fragment里onActivityResult()无回调的问题

本文链接地址:https://www.jiuchutong.com/biancheng/374347.html 转载请保留说明!

上一篇:java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系

下一篇:[置顶] Android 动画实现-原来如此简单([置顶]星陨计划)

  • 国际税收协定是怎样避税的
  • 4s店代办保险回扣
  • 计提当月社保会计分录
  • 零星采购范围
  • 收到红字进项发票需要认证么
  • 出售已使用固定资产增值税申报表
  • 企业收到利息发票怎么做分录
  • 小企业会计准则和一般企业会计准则的区别
  • 民办学校账务怎么做
  • 购入库存商品未付款怎么做账
  • 库存商品采用定价法
  • 因保管不善,不慎遗失
  • 结转损益主营业务成本在借方还是贷方
  • 公司电子承兑汇票
  • 购入原材料退货的记账凭证怎么写
  • 公司厂房拆迁要交税吗
  • 18年补交17年城建税会计分录
  • 购买车间用的材料怎么做分录
  • 无票收入应附什么单据
  • 一般纳税人可以开3%的发票吗
  • 出口企业增值税怎么算
  • 缴纳印花税税会计分录怎么做
  • 公司与股东的往来款涉税
  • 增值税普票丢失的最新处理
  • 公司做账挂名字
  • 银行贷款入公账怎么入分录?
  • win7无法使用管理员权限
  • 因质量问题被扣的货款销售方怎么做账
  • linux runit
  • 社保退回的工伤怎么赔偿
  • 本月未抵扣完的进项税是否转出
  • php的数组函数
  • 安代驾给我发短信
  • php jsondecode
  • 收到保险公司退款
  • 合同中违约金
  • php数组的类型有哪些
  • 微信小程序基于什么技术
  • sklearn报错
  • vue路由跳转携带参数怎么接收
  • php如何定义二维数组
  • php实现简单论坛
  • 免税农业企业所得税怎样填报
  • 结转生产成本是负数怎么办
  • 电子商业承兑到期后多长时间能收到款
  • 附加税减免额怎么算
  • mysql中文乱码解决
  • 汇算清缴银行手续费放哪里
  • 所得税营业成本包括管理费用吗
  • 零申报公司注销流程
  • 交易性金融资产公允价值变动怎么算
  • 买的加油卡怎么充值
  • 矿场维护
  • 收到的现金货款转到公户备注往来款可以吗
  • 哪种情形的货物或者服务可以采用竞争性谈判方式采购
  • 技术服务费如何赋码
  • 固定资产转为投资性房地产的账务处理公允价值
  • 单身租房子
  • 哪些业务需要计提国别风险准备金
  • 扩展什么
  • 什么是微软软件
  • 如何配置centos7下的apache服务
  • win7由于所要求的文件丢失或损坏
  • win10系统怎么设置屏幕
  • opengl编程宝典
  • vue3 todo
  • 批处理怎么操作
  • jquery制作简单的网页
  • shell脚本中判断字符串是否相等
  • 利用python绘图
  • jquery悬浮窗
  • android 监听事件
  • scrapy python
  • <script defer> defer 是什么意思
  • jquery中的动画方法有哪些
  • 最简单的java设计
  • 苏州买房退契税政策2023
  • 电子税务局校验码
  • 上市股票转为非上市
  • 车辆免征信息怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设