Activity和Fragment的onActivityResu

2018-04-16  本文已影响0人  dony_east

在实际开发过程中,发现了一些有趣的故事,记录一下以便备查,在我们打开新的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()方法前面执行。

上一篇下一篇

猜你喜欢

热点阅读