常见的OnActivityForResult 方法接收回调问题

由于微信登录的SDK更新太快,我很长时间没去看官方的SDK了,demo里的包不能算是最新的,于是默默滴删掉了第一篇博文挖的微信登录的坑。

不过给在做微信登录的朋友推荐一个Q群:421350685  群里都是做过或者在做微信登录、分享、甚至还有支付的。群里也有登录的demo,应该会给需要这方面资源的朋友带来一些帮助。

前阵子在做一个Fragment onActivityResult接收回调的时候发现回调接收不到,后面琢磨着解决了,期间查了查网上写的一些汇总,有些感觉有点模棱两可,所以干脆自己创了个工程测试了一下。

我将接收回调的情况分为两类,一类是Activity接收回调。这种情况又可根据StartAcitivityForResult方法的对象再度细分为两种:一种是在Activity本身启动,然后Activity接收回调,还有一种在Activity内部的Fragment启动。

在Activity本身直接调用“StartAcitivityForResult”,那么直接调用onActivityResult接收回调就行了; 如果是需要在Fragment启动,然后在Activity里接收回调,那么在Fragment启动的时候需要调用“getAcitivity().StartAcitivityForResult”,当然,getActivity也可以换成你自己需要的上下文Activity对象。

还有一类情况是Fragment接收回调,普通的Fragment接收回调,那就只需要Fragment本身直接调用StartAcitivityForResult就好了。

我前阵子遇到的是这么一种情况:  有FragmentActivity,FragmentA,还有一个继承FragmentA的FragmentB。根据这种情况我做了测试,得出如下结论:

如果在Activity里面new的对象是FragmentA,需要接收回调的也是FragmentA,那么这种情况就跟上面一样了,普通的运用就可。如果在Activity里面new的对象是FragmentB,此时如果需要FragmentA里面也收到回调,那么就需要在FragmentB方法里加上super.onActivityResult(requestCode, resultCode, data);这样就能在接收回调的时候,FragmentA和B的onActivityResult方法里的代码都会执行。

第一篇博文就短短的这些吧。没啥代码好贴的,后面写啥我也不随便挖坑了...开发中遇到啥值得记录下来的就找时间写上,慢慢积累了~~

转载请注明出处 http://blog.csdn.net/a751608624/article/details/46455419

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值