2016-05-24 5 views
1

Ich benutze Dolch 2 und Retrofit2 in einem Projekt, das die Länderkonfigurationen und auch die URL des Landes ändern kann, auf das Sie Daten anfordern möchten.Neustart auf Dagger 2 eine Abhängigkeit von Retrofits 2

Gibt es eine Möglichkeit, wie Dagger2 erneut eine Retrofit-Instanz erstellen kann, die die neue URL enthält?

Die Idee ist also, die Abhängigkeit von Retrofif neu zu starten, wenn der Benutzer sein Land ändert.

+0

sollte das Land nicht ein Parameter für Ihre Anfragen sein? – njzk2

+0

Ich wünschte, aber für jedes Land verwenden wir eine andere URL. –

+0

Ich würde eine Hülle um den Nachrüstadapter verwenden, die einen Nachrüstadapter liefern würde, der dem richtigen Land entspricht, wobei die letzte verwendete Instanz beibehalten wird. – njzk2

Antwort

3

Endlich eine Lösung, die funktioniert. Jedoch bin ich nicht 100% sicher über seine Leistungskosten.

Zu wissen, dass ein Benutzer das Land nicht ändern zu oft oder vielleicht nur einmal nach der App installiert haben, können wir rufen Sie wieder an DaggerAppComponent.builder() .... .build() in der Custom Application Klasse oder wann immer es in einem Projekt definiert ist. Sobald es wieder instanziiert wird, wird es die neue URL übernehmen.

Wie ich schon sagte, kann dies einen Preis für die Leistung haben, aber das wird nicht allzu oft passieren.