我想在像Adapter或自定义对象这样的类中使用注入,这些类无法访问扩展Application的MyApplication类。 如何访问组件?
使用下面的静态方法是否很好?
public class MyApplication extends Application {
private static MyComponent component;
@Override
public void onCreate() {
super.onCreate();
component = DaggerMyComponent.builder()
.appModule(new AppModule(this))
.helperModule(new HelperModule())
.build();
}
public static MyComponent getComponent(){return component;}
}
答案 0 :(得分:2)
我认为在这种情况下使用静态对象会导致内存泄漏。 你可以遵循的是"注入一切"此great article中显示的模式。
它的本质是什么?尝试在已注入的对象中注入需要Component
的对象。在本文中,Adapter
和ViewHolder
(任何对象)被注入到活动(以及适配器内的对象)中。这就是你想要实现的目标。
我还建议你阅读他关于Dagger 2的所有文章,因为我还没有看到关于Dagger 2功能的这么棒的高级教程