如何使用Hilt在ViewModel中注入工作管理器

时间:2020-07-28 19:02:41

标签: android mvvm android-jetpack android-workmanager dagger-hilt

我试图在ViewModel中使用工作管理器在服务器上上传文件,那么如何注入工作管理器?

我尝试了这个https://developer.android.com/training/dependency-injection/hilt-jetpack

但它似乎未完成,找不到HiltWorkerFactory

@HiltAndroidApp
class App : Application(), Configuration.Provider {

@Inject
    lateinit var workerFactory: HiltWorkerFactory

override fun getWorkManagerConfiguration() = Configuration.Builder()
        .setWorkerFactory(workerFactory)
        .build()

}

1 个答案:

答案 0 :(得分:1)

我不认为您可以将Work Manager注入到View模型中。您可以做的就是在视图模型中加入WorkManager的工作请求。

// Example from the documentation
val myWork: WorkRequest = // ... OneTime or PeriodicWork
WorkManager.getInstance(requireContext()).enqueue(myWork)

关于您的问题中包含的Application类的代码段,我想确保您已包含必需的依赖项。