2016-05-24 75 views
1

我在項目中使用了匕首2和retrofit2,該項目可以更改國家/地區配置以及指向請求數據的國家/地區的URL。如何在匕首2上重新啓動匕首2的依賴項

有什麼辦法Dagger2可以再次創建一個包含新URL的Retrofit實例嗎?

所以這個想法是在用戶改變國家時重新啓動Retrofif的依賴。

+0

國家不應該是您的請求參數? – njzk2

+0

我希望爲每個國家或地區使用不同的網址。 –

+0

我會在翻新適配器周圍使用一個包裝,以提供與正確國家匹配的翻新適配器,並保留最後一個使用的實例。 – njzk2

回答

3

最後一個解決方案有效。但是,我不能100%確定其性能成本。

知道,在自定義應用程序,用戶將不會改變這個國家過於頻繁或也許只有一次在安裝應用程序後,我們可以再次打電話DaggerAppComponent.builder().... .build()課程或在項目中定義的時間。所以一旦它再次實例化改造它將採用新的URL。

正如我所說的,這可能會帶來性能成本,但這種情況不會經常發生。