#android #dependency-injection #dagger-hilt
Вопрос:
У меня есть класс приложений MainApplication
Мне нужен доступ к модулю Hilt в этом классе:
Как я могу этого достичь ?
Комментарии:
1. Вы хотите ввести HceRepository в класс MApplication?
2. @gowtham6672 Точно
3. Я думаю, что вы должны быть абелем, чтобы сделать это после звонка oncreate. в чем проблема?
Ответ №1:
@HiltAndroidApp
class MainApplication : MultiDexApplication() {
@Inject
lateinit var hceRepository: HceRepository //new
override fun onCreate() {
// Try to call anything of hceRepository in here.
}
}
Выполните инъекцию поля в классе приложений. Этого должно быть достаточно
Ответ №2:
Здесь я вижу, что вы хотите ввести HCERepository в действие. Попробуйте сделать следующее:
@AndroidEntryPoint
class YourActivity : AppCompatActivity() {
@Inject
lateinit var hceRepository: HceRepository
override fun onCreate(savedInstanceState: Bundle?) {
// Try to call anything of hceRepository in here.
}
}
Поскольку вы вводите модуль ApplicationComponent
(будут более новые версии Hilt SingletonComponent
), вы можете ввести HceRepository
его в Activity
.
Узнайте больше здесь: Внедрение зависимостей с помощью рукояти