Можем ли мы ограничить область действия зависимости с помощью hilt в Android?

#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. Ваш вопрос не очень ясен, что вы имеете в виду, говоря, что им обоим делают инъекции? Вы имеете в виду, что их МОЖНО вводить с помощью обоих адаптеров или что они вводятся?