标签:des style http 使用 strong art
管理fragment的生命周期有些像管理activity的生命周期。Fragment可以生存在三种状态:
Resumed:
Fragment在一个运行中的activity中并且可见。
Paused:
另一个activity处于最顶层,但是fragment所在的activity并没有被完全覆盖(顶层的activity是半透明的或不占据整个屏幕)。
Stoped:
Fragment不可见。可能是它所在的activity处于stoped状态或是fragment被删除并添加到后退栈中了。此状态的fragment仍然存在于内存中。
同样类似于activity,你可以把fragment的状态保存在一个Bundle中,在activity被recreated时就需用到这个东西。你可以在onSaveInstanceState()方法中保存状态并在onCreate()或onCreateView()或onActivityCreated()中恢复,关于更多的保存状态的信息,请参考Activitys章节。
Fragment与Activity的生命周期中最大的不同就是存储到后退栈中的过程。Activity是在停止时自动被系统压入停止栈,并且这个栈是被系统管理的;而fragment是被压入activity所管理的一个后退栈,并且只有你在删除fragment后并明确调用addToBackStack()方法时才被压入。
然而,管理fragment的生命周期与管理activity的生命周期极其相似。你所需要去思考的是activity的生命周期如何影响fragment的生命周期。
Fragment与Activity生命周期对比图:
1. 当一个fragment被创建的时候,它会经历以下状态.
2. 当这个fragment对用户可见的时候,它会经历以下状态。
3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。
4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当 activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。
标签:des style http 使用 strong art
原文地址:http://www.cnblogs.com/yanxinyu/p/3855565.html