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

Ahm*_*tti 6 java android mvvm viewmodel kotlin

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

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

小智 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) }
    }
}
Run Code Online (Sandbox Code Playgroud)