【发布时间】:2021-10-04 22:57:59
【问题描述】:
我正在开发一个库并在其中使用 WorkManager 和 WorkManager 2.5.0
由于我想从库端自定义 WorkManager 的配置,我在 AndroidManifest.xml 中删除了 workmanager-init 并添加了这样的自定义配置,如doc中的按需初始化所述
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
[在我的库模块中的 AndroidManifest.xml 中]
和
WorkManager.initialize(context, Configuration.Builder().setMinimumLoggingLevel(Log.INFO).build())
[在我的库模块中的一个类中]
现在,它在库方面按预期工作。然而,当宿主应用也想自定义 WorkManager 的配置时,问题就来了。
当宿主应用也使用 WorkManager 2.5.0 时,
WorkManager.initialize(context, Configuration.Builder().setMinimumLoggingLevel(Log.VERBOSE).build())
应用程序通过使用java.lang.IllegalStateException: WorkManager is already initialized. 引发异常而因这行代码而崩溃
我尝试在主机应用程序的 AndroidManifest.xml 中删除 workmanager-init,但它仍然给我同样的错误。
宿主应用程序有什么方法可以自定义 WorkManager 的配置以及我的库自定义它吗?
【问题讨论】:
标签: android android-workmanager library-project