philo-dragon / Dagger2Simple

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dagger2Simple

  • Dagger2 - Android 使用步骤

  • 1.创建App继承自DaggerApplication实现抽象方法applicationInjector() 并在Manifest.xml中配置

  • 2.创建全局AppModule 和空的BuildersModule

  • 3.创建全局AppComponet 配置类注解

  •                   @Singleton
                      @Component(modules = {
                          AppModule.class,
                          BuildersModule.class,
                          AndroidSupportInjectionModule.class
                      })
    
  • 如何在Activity中使用Dagger2

  • 1.MainActivity继承DaggetActivity

  • 2.在super.onCreate(savedInstanceState)之前加上 AndroidInjection.inject(this)(如果继承DaggetActivity也可以不加 因为在DaggetActivity已经添加了)

  • 3.创建MainModule

  • 4.创建MainComponet 配置类注解

  •              @ActivityScope
                 @Subcomponent(modules = {MainModule.class})
    

    添加抽象方法泛型中添加准备注入的类 并添加注解 @Subcomponent.Builder abstract class Builder extends AndroidInjector.Builder {}

  • 5.在BuildersModule类中添加

  •    @ActivityScope
       @ContributesAndroidInjector(modules = MainModule.class)
       abstract MainActivity bindMainActivityInjectorFactory();
    
  • 这样就可以使用在MainActivity 中就可以愉快的使用AppModule和MainModule中提供的数据了

  • 使用建议

  • 创建BaseActivity继承DaggerActivity

  • 如果已经存在BaseActivity 可以仿写 DaggerActivity 在BaseActivity中调用

  • AndroidInjection.inject(this)

About


Languages

Language:Java 68.1%Language:Kotlin 31.9%