Я не совсем уверен, как решить эту проблему с кинжалом 2. Давайте предположим, что мы имеем ApplicationModule
, что дает нам ApplicationContext
то мы имеем ApplicationComponent
, который использует только этот модуль. Затем поверх него мы имеем ActivityModule
и ActivityComponent
, который имеет зависимость от ApplicationComponent
. ActivityComponent
построен так же, какDagger 2 - модули из различных компонентов
ApplicationComponent component = ((MyApplication) getApplication()).getComponent();
mComponent = Dagger_ActivityComponent.builder()
.applicationComponent(component)
.activityModule(new ActivityModule(this))
.build();
А потом я впрыснуть свою деятельность:
mComponent.inject(this);
Теперь я могу использовать все, что объявленную внутри моей ActivityModule
, однако это не представляется возможным для меня доступ ApplicationModule
.
Итак, вопрос в том, как это можно достичь? Так что, когда я создаю компонент, который зависит от другого компонента, я все еще могу получить доступ к модулю из первого?
EDIT
Я думаю, я нашел решение, после rewatching Devoxx talk by Jake снова, мне пришлось пропустить, что из, что я хочу использовать из другого модуля компонентов, я должен обеспечить в этом компоненте, например, я хочу использовать контекст от ApplicationModule
, затем внутри ApplicationComponent
Должен быть указан Context provideContext();
, и он будет доступен. Довольно круто :)
Вы не могли бы разместить ссылку на разговор? Спасибо – Leonardo
Здесь вы https://parleys.com/play/5471cdd1e4b065ebcfa1d557 – user3274539
Вы должны опубликовать свое редактирование в качестве ответа и выбрать его. На боковой ноте, вы разобрали области в кинжале 2? http://stackoverflow.com/questions/28411352/what-determines-the-lifecycle-of-a-component-object-graph-in-dagger-2 – Enrico