声明Manifest
两点注意:
-
要在Manifest中声明其原理中真正使用的ContentProvider类
androidx.startup.InitializationProvider
,注意author要携带${applicationId}
来避免与其他App产生冲突 -
记得一定要在这个provider下声明
meta-data
第一点不做解释了,其基本原理就是依靠ContentProvider的onCreate
会在应用初始化时被自动调用这一点。
关于第二个需要解释:
Startup会去找自己Provider下声明的第一个meta-data
所对应的类,来对他进行初始化,如果他声明了他有依赖项,那么他的依赖项也会被初始化。这样,一个初始化链路就行程了。
实例:
<provider
android:name=“androidx.startup.InitializationProvider”
android:authorities="${applicationId}.androidx-startup"
android:exported=“false”
tools:node=“merge”>
<meta-data android:name=“com.example.ExampleLoggerInitializer”
android:value=“androidx.startup” />
meta-data