Назад к вопросам
Middle+
72
questionbank
Какие готовые компоненты с определенным скоупом доступны в Dagger Hilt, и как можно добавить модуль к этой компоненте?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Dagger Hilt доступны следующие готовые компоненты с определенным скоупом:
SingletonComponentс@Singletonскоупом. Привязан к жизненному циклуApplication.ActivityRetainedComponentс@ActivityRetainedScopedскоупом. Привязан к жизненному циклу активити, но сохраняется при смене конфигурации.ActivityComponentс@ActivityScopedскоупом. Привязан к жизненному циклу активити.FragmentComponentс@FragmentScopedскоупом. Привязан к жизненному циклу фрагмента.ViewComponentс@ViewScopedскоупом. Привязан к жизненному циклуView.ViewModelComponentс@ViewModelScopedскоупом. Привязан к жизненному циклуViewModel.ServiceComponentс@ServiceScopedскоупом. Привязан к жизненному циклуService.
Чтобы добавить модуль к одной из этих компонент, используется аннотация @InstallIn:
@Module
@InstallIn(SingletonComponent::class) // Указываем компонент, к которому привязываем модуль
object AppModule {
@Provides
@Singleton // Скоуп должен соответствовать скоупу компонента
fun provideMyDependency(): MyDependency {
return MyDependency()
}
}
Здесь AppModule устанавливается в SingletonComponent, что означает, что объекты, предоставляемые этим модулем, такие как MyDependency, будут иметь @Singleton скоуп.