WorkManager 不会按需初始化

rek*_*yde 3 java android android-workmanager

我阅读了这些说明:https : //developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration#on-demand 现在我有一个 MyApplication 类,但我不明白如何使用它和我在任何地方都找不到明确的说明

请求WorkManager.getInstance时,自然会产生错误,因为MyApplication类在任何地方都没有使用。我无法理解如何为 WorkManager 激活此类。

AndroidManifest.xml

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

MyApplication.java:

public class MyApplication extends Application implements Configuration.Provider {
    @NonNull
    @Override
    public Configuration getWorkManagerConfiguration() {
        return new Configuration.Builder().
        setExecutor(Executors.newFixedThreadPool(5)).build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要准确地解决这个问题,所以我会很感激你的好帮助。如何使按需初始化工作?

pfm*_*ggi 5

WorkManager v2.1引入了按需初始化。这意味着WorkManager.initialize()当你有自定义配置时不需要调用,调用getInstance(Context)就足够了。

还不够的是调用现在已弃用的getInstance()(不带Context参数)。这在您链接到的文档中有所说明。

我还在 2019 年柏林 droidcon 的演讲“拥抱工作管理器”中介绍了它。您可以在幻灯片这里和录像在这里