背景
组件化已经流行多年了,大部分团队的组件化,还是部分的组件化,比如Activity,Fragment,Res,Androidmanifaset资源的module化隔离,但是,针对有些初始化必须在Application里做的,基本上,还是需要写在App模块下的application里,就会导致App模块下的appcation里臃肿,且,增加了非必要性的引用,这里呢,提供了一套完全彻底化组件化方案,组件Module也可以有自己的Application,一个应用在启动的使用,只有一个Application会被启动,那么组件module的Application如何被启动从而调用里面的初始化代码呢?继续往下看:

第一、首先在BaseLibrary组件种定义一个BaseApplication,所有application都继承该类、如下:
class MyBaseApplication : Application() {
var moduleApps = ArrayList<Application>()
//依次调用组件的Application onCreate
override fun onCreate() {
super.onCreate()
moduleApps.forEach { it.onCreate() }
}
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)

本文介绍了如何实现Android组件化的彻底解决方案,让每个组件Module拥有自己的Application。通过在BaseLibrary创建BaseApplication,组件Module继承并初始化,然后在AndroidManifest.xml中声明组件Application,利用反射在主Application中调用各组件Application的onCreate方法,实现组件间的独立初始化。
最低0.47元/天 解锁文章
2152





