使用: 实现“ androidx.work:工作运行时:2.3.4”
我正在尝试实现自定义初始化,以启用更详细的日志记录according to these instructions。
第一个代码段有一行错误:return Configuration.Builder()
必须为return new Configuration.Builder()
。
我扩展了应用程序,如下所示:
class MyApplication extends Application implements Configuration.Provider {
@Override
public Configuration getWorkManagerConfiguration() {
return new Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build();
}
}
我像这样启动工人:
WorkManager.getInstance(getApplicationContext());
尽管如此,我仍然因该投诉而使应用程序崩溃:
WorkManager没有正确初始化。您已明确禁用 清单中的WorkManagerInitializer,尚未手动调用 此时会初始化WorkManager#,并且您的应用程序不会 实现Configuration.Provider。
即使说明中指出:
您不需要自己调用WorkManager.initialize()
答案 0 :(得分:0)
您需要在Application类中实现Configuration.Provider
接口,以使用WorkManager的on-demand initialization提供自定义配置。
Advanced WorkManager codelab中的一些示例代码对此进行了解释:
class BlurApplication : Application(), Configuration.Provider {
override fun getWorkManagerConfiguration(): Configuration =
Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.DEBUG)
.build()
...
}
请确保您AndroidManifest.xml
中包含此应用程序类:
<application
android:name=".BlurApplication"
这样做,第一次使用getInstance(context)
请求WorkManager实例时,库将使用您的自定义配置进行初始化。
答案 1 :(得分:0)
OR
像这样初始化您的自定义WorkManager:
// provide custom configuration
val myConfig = Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build()
// initialize WorkManager
WorkManager.initialize(this, myConfig)