Advanced Concepts
Custom WorkManager Configuration and Initialization
默认情况下,当app启动的时候WorkManager自动的完成了配置,这个配置适用于大多数app.如果我们需要对WorkManager有更多的控制,比如:管理和调度任务,可以使用自己的配置初始化WorkManager.
这里有三种初始化的方式:
-
Default initialization
在应用启动的时候,WorkManager通过一个自定义的ContentProvider来初始化自己。相关代码在androidx.work.impl.WorkManagerInitializer中,同时使用默认的配置。除非你明确的禁止,否则默认的初始化将会自动完成。
如果想要使用自己的配置,首先需要移除默认的初始化器。步骤如下:
移除默认初始化器
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
- Custom initialization
添加自定义配置
// provide custom configuration
Configuration myConfig = new Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build();
//initialize WorkManager
WorkManager.initialize(this, myConfig);
- On-demand initialization(按需初始化)
Note: On-demand initialization is available in WorkManager 2.1.0-alpha01 and higher.
自定义初始化WorkManager是最灵活、合适的方式。这种方式允许你只有在需要的时候才初始化,而不是每次app启动的时候。这样,WorkManager的初始化就不在应用的启动配置列表中,优化了应用启动的性能。
实现步骤如下:
- 禁止默认的初始化器。
- 应用的Application实现Configuration.Provider 接口,并且重写getW