一、前言
本文对WorkManager
的高级使用–自定义配置和初始化进行记录。
二、初始化
之前的使用方式会使WorkManager
在程序启动的时候进行初始化。假如程序只在某个时机进行使用WorkManager
的话,会导致不必要的性能损耗。因此这里可以使用按需初始化。
1、移除默认初始化配置
本文仅记录WorkManager2.6
之后的方式
a、移除附加的startup
功能
由于WorkManager2.6
之后默认集成了startup
功能,所以如果应用中不使用该功能,可以使用以下方式将其移除
<!-- If you want to disable android.startup completely. -->
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove">
</provider>
b、进移除workmanager
功能
如果仅仅只想移除WorkManager
功能,可以使用以下方式
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<!-- If you are using androidx.startup to initialize other components -->
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>
三、自定义配置
当移除默认配置后,需要进行自定义配置,相关代码示例如下:
class MyApplication() : Application(), Configuration.Provider {
override fun getWorkManagerConfiguration() =
Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build()
}
本系列暂时到此为止,其余功能倘若工作中用到的话再次进行更新