Fragment在Android中又称为碎片,碎片(Fragment)是一种可以嵌入在活动当中的 UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。
Fragment的状态和回调:
1.运行状态,当Fragment处于可见, 并且他关联的activity处于运行状态时,他就处于运行状态。
2.暂停状态,当于Fragment关联的activity处于暂停状态(由于另一个未占满屏幕的activity添加到了栈顶),此时,Fragment进入暂停状态。
3.停止状态,当一个活动进入停止状态时,与它相关联的Fragment就会进入到停止状态。或者通过调用 FragmentTransaction的 remove()、replace()方法将Fragment从活动中移除,但有在事务提交之前调用addToBackStack()方法,这时的Fragment也会进入到停止状态。总的来说,进入停止状态的Fragment对用户来说是完全不可见的,有可能会被系统回收。
4.销毁状态,Fragment总是依附于活动而存在的,因此当活动被销毁时,与它相关联的Fragment就会进入 到销毁状态。或者通过调用 FragmentTransaction的 remove()、replace()方法将Fragment从活动中移除,但在事务提交之前并没有调用 addToBackStack()方法,这时的Fragment也会进入 到销毁状态。
回调函数
1. onAttach() 当activity与fragment建立关联时调用
2. onCreateView() 当fragment创建视图的时候调用
3. onActivityCreated() 确保与fragment相关联的activity一定已经创建完毕时调用
4. onDestroyView() 当与fragment相关联的视图被移除时调用
5. onDetach() 当fragment与activity解除关联时调用
activity与fragment生命周期对比:
在fragment中可以通过 onSaveInstanceState()来保存数据,在内存足够的情况下,不会被回收。保存下来的数据可以在 onCreate() , onCreateView() , onActivityCreated() 得到,他们都含有一个 Bundle类型的 savedInstanceState参数。