首页 > 解决方案 > 当我在 ViewModelComponent 中使用 @Singleton 时,Hilt 如何保留实例

问题描述

我知道当我们在多个 ViewModel 之间共享并且不需要提供对象的不同实例时,使用 @Singleton 提供程序很好。但是我没有找到任何关于删除实例过程如何处理多个 ViewModel 的信息?

可以说,

SharedRepository 由 AViewModel 提供 SharedRepository 由 BViewModel 提供

在这种情况下,dagger 是否会在两个 ViewModel 都被销毁之前击中实例?

@Module
@InstallIn(ViewModelComponent::class)
object DataModule {

    @Singleton
    @Provides
    fun provideAddressRepository(addressRemoteDataSource: AddressRemoteDataSource, @IoDispatcher dispatcher: CoroutineDispatcher): AddressRepository {
        return AddressRepositoryImpl(addressRemoteDataSource, dispatcher)
    }
}

标签: androiddagger-hilt

解决方案


推荐阅读