现在的位置: 首页 > 移动开发 > 正文

Android Fragment—与Activity生命周期的协调

2019年07月29日 移动开发 ⁄ 共 869字 ⁄ 字号 评论关闭

拥有Fragment的Activity的生命周期直接影响了其中的Fragment的生命周期,这样,针对Activity的每一个生命周期的回调都会有一个类似的针对Fragment的回调。例如,当Activity收到onPause()回调时,在Activity中每个Fragment都会收到onPause()回调。

但是,Fragment有几个额外的生命周期回调方法,用来处理跟Activity的交互,以便执行诸如创建和销毁Fragment的UI的动作。这些额外的回调方法如下:

onAttach()

   当Fragment已经跟Activity关联上的时候,这个回调被调用。Activity会作为onAttach()回调方法的参数来传递。

onCreateView()

   创建跟Fragment关联的视图层时,调用这个回调方法。

onActivityCreated()

   当Activity的onCreate()方法执行完之后,调用这个回调方法。

onDestroyView()

   当跟Fragment关联的视图层正在被删除时,调用这个回调方法。

onDetach()

   当从Activity中解除Fragment的关联时,调用这个回调方法。

像图3中说明的那样,Fragment的生命周期流收到持有这些Fragment的Activity的影响,在这个图中,你能看到每个连续的Activity状态决定了Fragment的那个回调方法可以被调用。例如,当Activity已经收到了onCreate()的回调之后,在Activity中的Fragment就不会再接收onActivityCreated()以上的回调了。

pic

图3. 在Activity生命周期影响之下的Fragment生命周期

 

一旦Activity到达了被恢复的状态,你就可以自由的给这个Activity添加和删除Fragment了,只有Activity在恢复态时,Fragment的生命周期才能独立的改变。

但是,当Activity离开恢复态时,Fragment会再次被推进Activity的生命周期中。

抱歉!评论已关闭.