#android #android-studio #kotlin #dagger-2 #dagger-hilt
Вопрос:
Я только что обновил рукоять и ранее работал с кинжалом.
Что я ищу?
У меня есть два вида деятельности Деятельность A и B, и у меня есть два адаптера для переработки отходов AdapterA и AdapterB.
Я хочу предоставить экземпляр AdapterA для действия A и экземпляр AdapterB для действия B с помощью @Inject.
Я не использую аннотацию @Singleton, но я не знаю, почему мои оба адаптера вводятся в оба действия, по-видимому, они не должны так работать. То, что я сделал до сих пор.
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent
@Module
@InstallIn(ActivityComponent::class)
class CurrencyModule {
@Provides
fun provideCurrencyAdapter(): CurrencyRatesAdapter {
return CurrencyRatesAdapter(mutableListOf())
}
}
В Упражнении А
@Inject
lateinit var currencyRatesAdapter: CurrencyRatesAdapter
Пожалуйста, предложите мне, как я могу ограничить область зависимости от адаптера только одним действием?
Спасибо
Комментарии:
1. Добавь
@ActivityScoped
provideCurrencyAdapter()
еще .2. Спасибо AMD, если я использовал @ActivityScoped таким образом, мой адаптер будет вводиться только в действия, но я хочу ограничить область действия одним действием.
3. Ваш вопрос не очень ясен, что вы имеете в виду, говоря, что им обоим делают инъекции? Вы имеете в виду, что их МОЖНО вводить с помощью обоих адаптеров или что они вводятся?