`
810364804
  • 浏览: 785198 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

原文:http://blog.csdn.net/think_soft/article/details/7272869


拥有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的生命周期中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics