Назад к вопросам
Middle
103
questionbank
Как передать контекст в Dagger?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Через модуль, предоставляющий Context.
@Module
class AppModule(private val context: Context) {
@Provides
@Singleton
fun provideContext(): Context {
return context
}
// Другие provide-методы
}
Затем этот модуль используется при билде компонента:
@Singleton
@Component(modules = [AppModule::class])
interface AppComponent {
// Инжекты
}
И компонент инициализируется с экземпляром AppModule:
class App : Application() {
lateinit var appComponent: AppComponent
override fun onCreate() {
super.onCreate()
appComponent = DaggerAppComponent.builder()
.appModule(AppModule(this)) // Передаем контекст here
.build()
}
}
В дальнейшем контекст можно инжектировать в любой класс, который требует его:
class MyService @Inject constructor(private val context: Context) {
// Используем контекст
}