我正在尝试使用viewModel中的工作管理器来上传服务器上的文件,那么我如何注入WorkManager?
我试过这个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()
}发布于 2020-08-12 09:04:43
我不相信你可以将工作管理器注入到你的视图模型中。您可以做的是将WorkManager的工作请求排入视图模型中。
// Example from the documentation
val myWork: WorkRequest = // ... OneTime or PeriodicWork
WorkManager.getInstance(requireContext()).enqueue(myWork)关于您在问题中包含的Application类的代码片段,我建议您确保包含所需的依赖项。
发布于 2021-10-29 10:58:13
你可以像下面这样使用它
在模块中添加provide方法
@Provides
fun provideWorkManager(
@ApplicationContext context: Context
) = WorkManager.getInstance(context)传入视图模型,如下所示
@HiltViewModel
class ViewModelDemo @Inject constructor(val workManager: WorkManager)上面的代码适合我,希望它能帮助你:)
https://stackoverflow.com/questions/63141102
复制相似问题