如何使用 Dagger2 在 ViewModel 构造函数中注入 WorkManager 实例?

dud*_*udi 4 android viewmodel dagger dagger-2 android-workmanager

我想用 Dagger2 注入一个 WorkManager 实例,以便在我的 ViewModel 中使用它,如下所示

class MyViewModel @Inject constructor(workManager: WorkManager) : ViewModel()
Run Code Online (Sandbox Code Playgroud)

当我尝试为 WorkManager 创建一个模块来提供它的实例时,我收到一条错误消息,指出我无法从抽象类提供。如何在我的 ViewModel 构造函数中注入 WorkManager 实例?

Hom*_*ang 5

@Module
@InstallIn(SingletonComponent::class)
object YourModule {    
    @Provides
    @Singleton
    fun provideWorkManager(@ApplicationContext appContext: Context): WorkManager =
        WorkManager.getInstance(appContext)
}
Run Code Online (Sandbox Code Playgroud)

注入到ViewModel:

@HiltViewModel
class YourViewModel @Inject constructor(
    val workManager: WorkManager
) : ViewModel() { 
Run Code Online (Sandbox Code Playgroud)