Activity、FragmentManager、FragmentTransaction、Fragment四者关系
Activity使用FragmentManager 来管理Fragment生命周期
FragmentManager 使用 FragmentTransaction管理Fragment事务操作
Activity 对FragmentManager引用
final FragmentControllermFragments =FragmentController.createController(new HostCallbacks());
Activity使用通过FragmentController来引用FragmentManager
FragmentManager同时使用HostCallbacks来引用Activity,以及监听Activity的生命周期
FragmentManager通过beginTransaction方法使用FragmentTransaction
FragmentManager实现类为FragmentManagerImpl
FragmentManager实现异步切换Fragment机制:是通过Handler loop 来进行的
简单来说,就是现在的Fragment commit会在下个Loop中执行
重要方法:moveToState
Fragment生命周期过程是通过这个方法管理的
FragmentTransaction实现类为BackStackRecord
他的作用主要是生成ArrayList<Op>序列,然后通过OpGenerator进行事务管理
commit方法最终会调用FramgentManager enqueueAction来执行事务动作