6 return ExampleLogger(WorkManager.getInstance(context))
7 }
8
9 override fun dependencies(): List<Class<out Initializer<*>>> {
10 // Defines a dependency on WorkManagerInitializer so it can be
11 // initialized after WorkManager is initialized.
12 return listOf(WorkManagerInitializer::class.java)
13 }
14}
15
16class ExampleLogger(val workManager: WorkManager){
17
18}
第三步:在 AndroidManifest 里面配置自定义的 InitializationProvider
1<provider
2 android:name=“androidx.startup.InitializationProvider”
3 android:authorities="${applicationId}.androidx-startup"
4 android:exported=“false”
5 tools:node=“merge”>
6
7 <meta-data android:name=“com.xj.anchortask.appstartup.ExampleLoggerInitializer”
8 android:value=“androidx.startup” />
9
它是有固定格式的,配置者只需要配置 meta-data 中的 name 即可。 android:name=“com.xj.anchortask.appstartup.ExampleLoggerInitializer” 这里的 name 是我们自定义的 Initializer 全路径。
程序运行跑起来,可以看到以下输出结果,符合我们的预期
2021-04-17 17:48:42.049 28059-28059/com.xj.anchortask I/AnchorTaskApplication: attachBaseContext:
2021-04-17 17:48:42.077 28059-28059/com.xj.anchortask I/AnchorTaskApplication: create: WorkManagerInitializer init
2021-04-17 17:48:42.077 28059-28059/com.xj.anchortask I/AnchorTaskApplication: create: ExampleLoggerInitializer init
2021-04-17 17:48:42.084 28059-28059/com.xj.anchortask I/AnchorTaskApplication: onCreate:
==================================================================