最简单的安卓下Dagger2注入
2016-01-11 15:17
274 查看
首先,对于需要注入的内容添加@Inject。
例如,在MainActivity里面需要一个InterfaceA类型对象
然后需要@Module类,该类里通过@Provides方法为@Inject进行注入
最后,@Component定义一个接口,在接口中提供注入点。
在MainActivity注入时调用injectA方法即可完成注入。
但是调用injectA方法的前提是你需要有一个AComponent对象,这个对象通过Daager2在编译时自动生成的一个DaggerAComponent来类来获得。所以,可以让MainActivity继承BaseActivity,在BaseActivity中完成AComponent接口的实例化。
MainActivity继承BaseActivity,通过getComponent方法获得AComponent对象:
例如,在MainActivity里面需要一个InterfaceA类型对象
MainActivity extends Activity{ @Inject InterfaceA ia; }
然后需要@Module类,该类里通过@Provides方法为@Inject进行注入
@Module class ModuleA { Aa = new A();//A实现了接口InterfaceA @Provides Interface AprovideInterfaceA(){ return a; } }
最后,@Component定义一个接口,在接口中提供注入点。
@Singleton @Component(module = ModuleA.class) public interface AComponent(){ void injectA(MainActivity act); }
在MainActivity注入时调用injectA方法即可完成注入。
但是调用injectA方法的前提是你需要有一个AComponent对象,这个对象通过Daager2在编译时自动生成的一个DaggerAComponent来类来获得。所以,可以让MainActivity继承BaseActivity,在BaseActivity中完成AComponent接口的实例化。
BaseActivity extends Activity{ AComponentcomponent; onCreate(Bundleb){ super.onCreate(b); component = DaggerAComponent.builder.moduleA(new ModleA()).build(); } public AComponent getComponent(){ return component; } }
MainActivity继承BaseActivity,通过getComponent方法获得AComponent对象:
MainActivity extends BaseActivity{ @Inject InterfaceA ia; onCreate(Bundleb){ super.onCreate(b); setContentView(R.layout.main); getComponent().inject(this); } }
相关文章推荐
- iOS Monkey Test Tool.CrashMonkey4IOS
- YTU 2907: 类重载实现矩阵加法
- Web网页尺寸规范
- postman的几个问题
- IDS 开源
- 使用js实现上传图片的大小限制
- android 帧动画的替代方案
- iOS报错[__NSCFNumber length]: unrecognized selector sent to instance
- Shallow heap & Retained heap
- Android 整数数据保留2位小数点
- Redis教程
- 【类unix系统shell基础】1.02更改文件权限
- android开发(46) 使用 textview实现文字的阴影效果,浮雕效果
- 实现一个数变成基数的倍数
- MySQL提示The InnoDB feature is disabled需要开启InnoDB的解决方法
- IOS 图片上传处理 图片压缩 图片处理
- linux安装jdk
- Capacitated minimum spanning tree https://en.wikipedia.org/wiki/Capacitated_minimum_spanning_tree
- Java正则表达式教程及示例
- Check (Validate) File (Image) Size before upload using JavaScript and jQuery