
集合框架介绍 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集...
你好,楼主。我觉得DispatcherActivityCallback 中加入ReportFragment.injectIfNeededIn(activity)应该是为了兼容support库中的Activity的,只有AndroidX中的androidx.core.app.ComponentActivity的oncreate方法里调用了ReportFragment.injectIfNeededIn。
class LifecycleDispatcher {
static void init(Context context) {
...
//registerActivityLifecycleCallbacks 注册一个监听器
((Application) context.getApplicationContext())
.registerActivityLifecycleCallbacks(new DispatcherActivityCallback());
}
}
Application使用registerActivityLifecycleCallbacks将DispatcherActivityCallback进行注册,放入了自己的mActivityLifecycleCallbacks集合中,然后在Application的dispatchActivityCreated方法里循环遍历调用了DispatcherActivityCallback的onActivityCreated方法
实际就是如果有个Activity oncreate方法被调用,这时候便会调用Application的dispatchActivityCreated方法,然后便通过遍历mActivityLifecycleCallbacks集合,取出DispatcherActivityCallback,调用onActivityCreated方法,将当前activity和ReportFragment有了绑定,这样其他非AndroidX activity也可以使用lifecycle了
Lifecycle 使用及原理解析 一文搞懂*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 Lifecycle是Android Architecture Components的一员,这玩意儿挺方便...