Dagger2& Android - 决定在运行时注入哪个接口的实现

时间:2017-03-31 05:59:41

标签: android dependency-injection dagger-2

嗨,我对Dagger很陌生,而且我很难理解如何让事情发挥作用。我想在一个项目中使用它。该项目需要使用基于OS或制造商或模型的不同实现。但它需要等待授予设备管理员和运行时权限。

我用一个小小的演示做了快速回购。 PostPermissionActivityModule正在运行,但所选的WiiImplementation却没有。我主要关注的是如何在Activity中正确设置WiFiImplementation,并在Processor Object中提供。其他改进是受欢迎的,但不是我真正想要的。

感谢:

https://github.com/pnogas/DaggerTest

1 个答案:

答案 0 :(得分:0)

@Component(modules = {PostPermissionActivityModule.class, MyWifFiManagerInterfaceModule.class})
@Singleton
public interface PostPermissionActivityComponent {
    void inject(PostPermissionActivity postPermissionActivity);
    void inject(MyWiFiManagerInterface myWiFiManagerInterface);
}

这不会注入MyWifiManagerInterface,为了工作wifi管理员,您需要为MyWifiManagerInterface创建另一个组件

请参阅此Answer

为了更好地使用匕首进行架构设计,您可以参考Example