Ich bin mir nicht ganz sicher, wie dies mit Dolch zu lösen 2. Lets wir ApplicationModule
annehmen, die uns ApplicationContext
liefert dann haben wir ApplicationComponent
, die nur dieses eine Modul verwendet. Dann oben haben wir ActivityModule
und ActivityComponent
, die Abhängigkeit von ApplicationComponent
hat. ActivityComponent
ist wieDagger 2 - Module aus verschiedenen Komponenten
ApplicationComponent component = ((MyApplication) getApplication()).getComponent();
mComponent = Dagger_ActivityComponent.builder()
.applicationComponent(component)
.activityModule(new ActivityModule(this))
.build();
bauen Und dann spritze ich meine Tätigkeit:
mComponent.inject(this);
Jetzt zugreifen Ich bin in der Lage, alles zu verwenden, aber in meinem ActivityModule
deklariert ist es für mich nicht möglich ist, ApplicationModule
.
Die Frage ist also, wie das erreicht werden könnte? Also, wenn ich eine Komponente baue, die von einer anderen Komponente abhängt, kann ich immer noch von der ersten auf das Modul zugreifen?
EDIT
Ich glaube, ich Lösungen gefunden, nach Devoxx talk by Jake wieder rewatching ich, dass aus verpassen musste, was ich von einem anderen Komponente-Modul verwenden mag ich in dieser Komponente zur Verfügung zu stellen, zum Beispiel mag ich Kontext von ApplicationModule
verwenden dann innerhalb ApplicationComponent
Ich muss Context provideContext();
angeben und es wird verfügbar sein. Ziemlich cool :)
Möchten Sie den Link zu dem Gespräch etwas ausmachen, veröffentlichen? Danke – Leonardo
Hier sind Sie https://parleys.com/play/5471cdd1e4b065ebcfa1d557 – user3274539
Sie sollten Ihre Bearbeitung als die Antwort posten und wählen Sie es aus. Nebenbei bemerkt, habt ihr in Dagger 2 Scopes herausgefunden? http://stackoverflow.com/questions/28411352/what-determines-the-lifecycle-of-a-component-object-graph-in-dagger-2 – Enrico