位置: 编程技术 - 正文
推荐整理分享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方法。
修改后正常调用了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 转载请保留说明!友情链接: 武汉网站建设