Как получить доступ к модулю Hilt в классе приложений

#android #dependency-injection #dagger-hilt

Вопрос:

У меня есть класс приложений MainApplication

введите описание изображения здесь

Мне нужен доступ к модулю Hilt в этом классе:

введите описание изображения здесь

Как я могу этого достичь ?

Комментарии:

1. Вы хотите ввести HceRepository в класс MApplication?

2. @gowtham6672 Точно

3. Я думаю, что вы должны быть абелем, чтобы сделать это после звонка oncreate. в чем проблема?

4. developer.android.com/training/dependency-injection/…

Ответ №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 .

Узнайте больше здесь: Внедрение зависимостей с помощью рукояти