Внедрение зависимостей Android с помощью Dagger 2 @BindInstance - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно создать один экземпляр, используя кинжал 2, используя настроенный @Component.Builder, который имеет @BindInstance для каждой службы, которую я использую.

У меня вопрос: есть ли способ использовать аннотацию @scope в сервисах, как мы используем @singlton на уровнях модулей и компонентов?

Вот пример @component.Builder, который я использую для введения некоторых из моих услуг

@Component.Builder
interface Builder {

    @BindsInstance
    Builder sharedPreferenceService(SharedPrefService sharedPreferences)

    @BindsInstance
    Builder applicationService(Application application);


    @BindsInstance
    Builder schedulersService(SchedulersService schedulersService);

}

А вот как я предоставляю их в классе приложения

DaggerPresenterEnvironmentComponent.builder()
            .sharedPreferenceService(sharedPrefService)
            .applicationService(this)
            .schedulersService(schedulersService)
            .build());

Я проследил созданные экземпляры sharedPreferenceService and schedulerServices Я обнаружил, что существует более одного экземпляра.

...