如何使用自定义工厂初始化WorkManager?

问题描述 投票:0回答:1

我正在关注https://android.jlelse.eu/injecting-into-workers-android-workmanager-and-dagger-948193c17684试图能够将对象注入Worker中。

我的问题在帖子末尾附近

@Inject lateinit var myWorkerFactory: MyWorkerFactory

WorkManager.initialize(
      this,
      Configuration.Builder()
        .setWorkerFactory(myWorkerFactory)
        .build()
    )

我们如何为MyWorkerFactory提供匕首?我不断收到此错误:Caused by: kotlin.UninitializedPropertyAccessException: lateinit property myWorkerFactory has not been initialized

对于匕首图设置,我有:

abstract class MyWorkerModule {

    @Binds
    @IntoMap
    @WorkerKey(MyWorker::class)
    internal abstract fun bindMyWorkerFactory(worker: MyWorker.Factory): ChildWorkerFactory
}

摘自博客文章,但这实际上没有提供MyWorkerFactory对吗?

android android-workmanager
1个回答
0
投票

可能不是正确的解决方案,但是您可以尝试更改此代码行。

@Inject lateinit var myWorkerFactory: MyWorkerFactory

使用此:

@Inject var myWorkerFactory: MyWorkerFactory?=null
© www.soinside.com 2019 - 2024. All rights reserved.