dagger2踩坑

来源:互联网 发布:unity3d 搭积木 编辑:程序博客网 时间:2024/05/03 22:04
dependencies:

一个component可以通过此注解依赖另外一个component,但是所依赖的component中必须要提供所要使用的modules中provide所注解的方法,并且返回值相同,如果其中有named注解的方法 这里的返回值为void,如果依赖的component有@signton标注,依赖者必须自定义一个signton标注并放在上面,例如:


被依赖者

@Singleton @Component(modules = { ActivityModel.class, TagModel.class })public interface ActivityComponent {  String getMyString();  LocalUser getLoca();  ApiUser getABC();  Utils getUtils();}


moudle

@Module public class TagModel {   @Provides public Utils getUtils() {    return new Utils();  }}

依赖者

@Single@Component(dependencies = ActivityComponent.class) public interface OneComponent {  void inject(MainActivity mainActivity);}

application中使用

public class MyApplication extends Application {  private ActivityComponent ActivityComponent;  @Override public void onCreate() {    super.onCreate();    ActivityComponent = DaggerActivityComponent.builder()        .activityModel(new ActivityModel("oko"))        .tagModel(new TagModel())        .build();  }  public ActivityComponent getModel() {    return ActivityComponent;  }}
activity中使用  DaggerOneComponent.builder().activityComponent(((MyApplication)getApplication()).getModel()).build().inject(this);

0 0