集合框架介紹 在Java語言中扎附,Java語言的設(shè)計者對常用的數(shù)據(jù)結(jié)構(gòu)和算法做了一些規(guī)范(接口)和實現(xiàn)(具體實現(xiàn)接口的類)。所有抽象出來的數(shù)據(jù)結(jié)構(gòu)和操作(算法)統(tǒng)稱為Java集...
你好嚼摩,樓主。我覺得DispatcherActivityCallback 中加入ReportFragment.injectIfNeededIn(activity)應(yīng)該是為了兼容support庫中的Activity的矿瘦,只有AndroidX中的androidx.core.app.ComponentActivity的oncreate方法里調(diào)用了ReportFragment.injectIfNeededIn低斋。
class LifecycleDispatcher {
static void init(Context context) {
...
//registerActivityLifecycleCallbacks 注冊一個監(jiān)聽器
((Application) context.getApplicationContext())
.registerActivityLifecycleCallbacks(new DispatcherActivityCallback());
}
}
Application使用registerActivityLifecycleCallbacks將DispatcherActivityCallback進行注冊,放入了自己的mActivityLifecycleCallbacks集合中匪凡,然后在Application的dispatchActivityCreated方法里循環(huán)遍歷調(diào)用了DispatcherActivityCallback的onActivityCreated方法
實際就是如果有個Activity oncreate方法被調(diào)用膊畴,這時候便會調(diào)用Application的dispatchActivityCreated方法,然后便通過遍歷mActivityLifecycleCallbacks集合病游,取出DispatcherActivityCallback唇跨,調(diào)用onActivityCreated方法,將當前activity和ReportFragment有了綁定衬衬,這樣其他非AndroidX activity也可以使用lifecycle了
Lifecycle 使用及原理解析 一文搞懂*本篇文章已授權(quán)微信公眾號 guolin_blog (郭霖)獨家發(fā)布 Lifecycle是Android Architecture Components的一員,這玩意兒挺方便...