即使 WorkManagerInitializer 未在清单中禁用,WorkManager 未初始化异常

Sim*_*ays 6 android android-workmanager

我有一个用于WorkManager多个后台任务的应用程序。最近,即使我没有在清单中禁用,由于 WM 未初始化,我在生产日志中看到很多崩溃WorkManagerInitializer

java.lang.IllegalStateException: WorkManager is not initialized properly. The most likely cause is that you disabled WorkManagerInitializer in your manifest but forgot to call WorkManager#initialize in your Application#onCreate or a ContentProvider.
        at androidx.work.WorkManager.getInstance(WorkManager:161)
        ...
Run Code Online (Sandbox Code Playgroud)

WM 文档说

默认情况下,WorkManager 使用内置 ContentProvider 自动初始化自身。ContentProviders 在 Application 对象之前创建和运行,因此在大多数情况下,这允许在代码运行之前设置 WorkManager 单例。

在大多数情况下,有趣的部分是。我想知道在什么情况下它在应用程序启动之前没有正确初始化。

我最初的猜测是我的代码中的错误可能创建了太多的 WM 任务,这些任务需要很长时间才能初始化,但我无法以这种方式重新创建崩溃。

有人以前见过这种行为并且知道这里会发生什么吗?为什么WorkManager应用程序启动前没有初始化?

Pra*_*esh 0

在清单文件中添加以下代码

   <provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    android:exported="false"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)