如何使用hilt dagger在服务中注入ViewModel

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

我想在Service中注入View Model,怎么可能。

我最近开始通过 Dagger Hilt 在我的项目中使用 DI。将 viewModel 实例注入 Activity/Fragment 时没有任何问题。但我不知道如何将其注入服务

java android kotlin mvvm viewmodel
1个回答
0
投票
@AndroidEntryPoint
class MyService : Service(), ViewModelStoreOwner{
    @Inject
    lateinit var viewModelFactory: ViewModelProvider.Factory
    private val viewModel by lazy {
        ViewModelProvider(this, viewModelFactory)[MainViewModel::class.java]
    }
    private val store = ViewModelStore()
    override val viewModelStore get() = store
}

@Module
@InstallIn(ServiceComponent::class)
object ServiceModule {
    @Provides
    fun provideMainViewModelFactory(repository: MyRepository)= viewModelFactory {
        initializer { MainViewModel(repository) }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.