240 发简信
IP属地:湖北
  • 120
    Java8集合框架结构图

    集合框架介绍 在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的一员,这玩意儿挺方便...