我在我的Android
應用程序中使用Dagger2
依賴注入,我想注入的對象作爲單到我BaseActivity可用貫穿整個應用程序,但Object的值只能在認證過程後設置,其值取決於認證結果。
編譯:
這就是我目前的設置是這樣:
public interface Tool {
...
}
public class ToolOne implements Tool {
...
}
public class ToolTwo implements Tool {
...
}
的通用接口和它的兩個不同的實現。
public class ToolConfig {
private Tool currentTool;
public ToolConfig(Tool tool) {
this.currentTool = tool;
}
...
}
一個用作配置的類,用於整個應用程序。
@Provides
@PerApplication
ToolConfig provideToolConfig(Tool tool) {
return new ToolConfig(tool);
}
配置在我的ToolModule中爲Dagger定義的方式。這將被注入BaseActivity以供所有類使用。
任務:
我怎樣才能設置currentTool
的配置價值?根據驗證過程,ToolOne
或ToolTwo
應設置爲值currentTool
。如果認證過程再次完成,應該可以更改它。在設置一次後很少會出現這種情況,但可能會發生,我想確保始終使用該對象的同一個實例。
有沒有建議的方式,我可以用Dagger2做到這一點?
我懷疑你能做到這一點。 Afaik Dagger2在編譯時工作 – Blackbelt
我知道,但在這種情況下找到一個無匕首的解決方法來使用依賴注入似乎很奇怪,我希望有一種方法。 – Eve
使用不同的噴油器。 Dagger2只是一個難題。 Dagger2不是依賴注入。 – Blackbelt