Fragment相关源码阅读笔记(3)FragmentManagerImpl
来源:互联网 发布:淘宝卖家规则 编辑:程序博客网 时间:2024/06/03 22:47
FragmentManagerImpl类是FragmentManager抽象类的具体实现,负责Fragment 的管理,主要有三方面的功能:
1/Fragment管理,添加移除等(add/remove/replace/hide/show)
2/事务管理,对Transactions的操作,addToBackStack和popBackStack
3/与Activity生命周期的同步操作,dispatchXXXX
1.Fragment管理
在FragmentTransactions的实现类BackStackRecord中,add/replace/remove等方法只是把对应的操作命令存储在操作链表中,
在通过Handler调度的异步操作中调用BackStackRecord的run方法时 才真正进行Fragment相应操作
这里实际调用了FragmentManagerImpl的对应方法,FragmentManagerImpl维护Fragment的对应数据结构(线性表)
2.Fragment事务
FragmentManager抽象类定义BackStackEntry作为Fragment事务的抽象,BackStackRecord实现了该接口,FragmentManagerImpl管理BackStackRecord
相关线性表(栈)
3.与Activity同步
在Activity生命周期中有调用了FragmentController的DispatchXXX方法,实际会调用的FragmentManagerImpl的对应方法,实现了生命周期同步;但是Fragment生命周期并不是固定于Activity生命周期对应的,当我们在动态添加Fragment 的时候,如果在Activity的OnResume中进行FragmentTransActions的提交操作,Fragment在OnResume前的生命周期也会走一遍,生命周期毁掉的调用是在moveToState方法中根据当前Fragment状态以及目标状态确定的,由FragmentTransActio.commit()或dispatchXXXX方法触发
0 0
- Fragment相关源码阅读笔记(3)FragmentManagerImpl
- Fragment相关源码阅读笔记(1)
- Fragment相关源码解析一——FragmentManagerImpl和BackStackRecord
- Fragment相关源码阅读笔记(2)FragmentTransaction
- Fragment源码阅读笔记
- 阅读Fragment源码笔记
- Fragment源码阅读笔记
- Fragment笔记和源码阅读
- Android源码阅读笔记(1)----Fragment
- go源码阅读笔记(math.3)
- [spark源码剖析]RDD相关源码阅读笔记
- ActiveAndroid 源码阅读笔记 (3)
- flashsim源码阅读笔记3
- fragment相关(笔记)
- SDL源码阅读笔记(3)渲染模块
- SDL源码阅读笔记(3)渲染模块
- SDL源码阅读笔记(3)渲染模块
- Redis源码阅读笔记(3)-- 字典dict
- linux学习之sed命令总结
- [DP 斜率优化 CDQ分治||动态维护凸包] BZOJ 1492 [NOI2007]货币兑换Cash
- php原始数据操作的封装类
- XPath语法 在C#中使用XPath示例
- 安装Linux命令aview——图片转ASCII码命令
- Fragment相关源码阅读笔记(3)FragmentManagerImpl
- MySQL命令连接数据库
- Markdown 语法入门
- javaScript笔记(十二) 匿名函数和闭包
- 关联源码
- MySQL:MHA安装配置
- nginx配置遇到的问题与解决方法(nginx.conf正则)
- 统计数字类型的String数组中各个元素的个数
- XSLT语法 在.net中使用XSLT转换xml文档示例