美文网首页
Activity和Fragment的onActivityResu

Activity和Fragment的onActivityResu

作者: dony_east | 来源:发表于2018-04-16 16:03 被阅读0次

    在实际开发过程中,发现了一些有趣的故事,记录一下以便备查,在我们打开新的activity时候有时候需要回传数据到上个页面,儿这个页面有可能是activity,也可能在activity中嵌套fragment。这个时候onActivityResult的回调方法就不一定好使,经过查证,activity和fragment中都拥有开启一个activity的能力,直接用activity调用startActivityForResult()方法是没有问题,这里不再赘述,讲讲fragment调用。

    在fragment调用activity.startActivityForResult()方法会执行activity的onActivityResult()方法,不会执行fragment的,如果调用fragment.startActivityForResult()方法就会执行fragment中的onActivityResult()方法,如果你包裹fragment的activity中同样也使用了onActivityResult()方法,那么请记住,一定不能删掉关键代码super.onActivityResult(requestCode, resultCode, data);因为fragment之所以能够回调到onActivityResult()方法,是因为在activity的onActivityResult()方法中对fragment做了处理,如果没有这句就不会执行fragment中的onActivityResult()方法。也就是说调用fragment.startActivityForResult()方法,会先执行activity的onActivityResult()方法,然后通过super.onActivityResult(requestCode, resultCode, data)方法判断是否要传递给fragment。

    注意 :onActivityResult方法会在onresume()方法前面执行。

    相关文章

      网友评论

          本文标题:Activity和Fragment的onActivityResu

          本文链接:https://www.haomeiwen.com/subject/etcekftx.html