首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Hilt在ViewModel中注入工作管理器

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

Stack Overflow用户
提问于 2020-07-29 03:02:41
回答 2查看 1.2K关注 0票数 0

我正在尝试使用viewModel中的工作管理器来上传服务器上的文件,那么我如何注入WorkManager?

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

但它似乎未完成,并且未找到HiltWorkerFactory

代码语言:javascript
复制
@HiltAndroidApp
class App : Application(), Configuration.Provider {

@Inject
    lateinit var workerFactory: HiltWorkerFactory

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

}
EN

回答 2

Stack Overflow用户

发布于 2020-08-12 09:04:43

我不相信你可以将工作管理器注入到你的视图模型中。您可以做的是将WorkManager的工作请求排入视图模型中。

代码语言:javascript
复制
// Example from the documentation
val myWork: WorkRequest = // ... OneTime or PeriodicWork
WorkManager.getInstance(requireContext()).enqueue(myWork)

关于您在问题中包含的Application类的代码片段,我建议您确保包含所需的依赖项。

票数 0
EN

Stack Overflow用户

发布于 2021-10-29 10:58:13

你可以像下面这样使用它

在模块中添加provide方法

代码语言:javascript
复制
  @Provides
    fun provideWorkManager(
        @ApplicationContext context: Context
    ) = WorkManager.getInstance(context)

传入视图模型,如下所示

@HiltViewModel

代码语言:javascript
复制
class ViewModelDemo @Inject constructor(val workManager: WorkManager)

上面的代码适合我,希望它能帮助你:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63141102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档