用过spring的肯定知道,当你创建一个对象的时候肯定不会自己手动去创建一个,而是由Spring帮你注入一个,当然dagger也是一样的,对象的创建无需自己创建,低耦合。
下面先简单说下dagger的使用
1.需要apt插件
2.添加相应的jar依赖
做完上面的两步,接下来你还需要了解几个基本注解的使用
@Inject 这个注解就是在你需要注入某对象的地方使用它,然后Dagger就知道你需要创建一个这样的对象。
@Module这个注解就是是标注到某个类上的,当Dagger需要创建对象的时候就会从这个类中寻找,从哪个方法中寻找呢,这就需要另一个注解@Provide,这个注解使用在方法上并专门提供那些需要注解的对象。
@Component 这个注解就像是一个注入器 它用于连接@Inject和@Module,相当于他们之间 的桥梁,@Compoent 用于注解一个接口,然后列出所有使用@Module的类并组成该组件
下面具体使用
Component 组件
Module
@Moudle就是modules @Provides说明该方法提供注解对象 并且是单利的 @Sinleton 顾名思义
当然我们还需要这个DataCompoent对象 这个对象你可以生成在合适的位置 保证他是单利 使用前已经初始化就好, 我这里是初始化在了自定义Application里面
做好上面的几个铺垫 Module 和 Component都有了 那么如果要在类中注入一个对象,
这里我们在类App中注入ActivityB 这里做了两步使用@Inject说明了 要注入的对象,使用DataCompoent告诉Dagger告诉哪个类需要注入
做完上面的几步 mActivityB就完全创建了 可以使用了 非常方便 不要你去管理他的生命周期