Fragment具有自己完整的生命周期(当然和所关联的Activity是同步的)。相比Activity更加轻量级,但同时具有同样的功能,也能够将界面划分成不同的模块或者说是碎片,更加易于管理和维护。
Fragment生命周期onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume()->onPause()->onStop()->onDestoryView()->onDestory()->onDetach()
当Fragment从backstack返回栈中弹出时会被销毁执行onDestoryView()和onDestory()。
Fragment核心在与FragmentManager对Fragment的管理。
对Fragment的操作用FragmentTransaction(事务)描述。FragmentTransaction是一个抽象类,BackStackRecord是它的实现类,用于记录存放于backstack返回栈一个条目。BackStackRecord用一个双向链表维护了一组对Fragment的操作(包含旧的Fragment和新的Fragment)。当进行commit提交的时候会遍历整个双向链表来交给FragmentManager处理,FragmentManager会执行BackStackRecord的run方法完成一组对Fragment的操作。
FragmentManager同样是一个抽象类