Dagger2的学习笔记
来源:互联网 发布:淘宝宝贝详情批量修改 编辑:程序博客网 时间:2024/04/27 18:56
一, 为什么要引入dagger2?
一句话 解耦,常见的解耦方式有 继承,单例设计, 依赖注入等.dagger2就属于最后一种.
二, 在什么情况下引入dagger2?
android 开发MVC模式过于臃肿, V层 可以剥离一些逻辑出来,比如登录页面的登录逻辑可以用presenter展示, presenter对象可以new出来在调用login方法,实现登录,但是假设在其他页面还需要使用这个presenter则会导致new出多个对象, 使用dagger2一次注入,多次使用. 保证对象的唯一性.
三, dagger2的使用方法.
1. 在项目的build.gradle文件中添加
首先应用注入
apply plugin: 'com.android.application'
compile 'com.google.dagger:dagger:2.6'apt 'com.google.dagger:dagger-compiler:2.6'
2. 在工程的build.gradle文件中添加
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
3. 开始使用 第一步 写一个注入接口
@Component(modules = LoginActivityModule.class)public interface LoginActivityComponent { void in(LoginActivity loginActivity);}
4. 写一个注入接口中指向的module , 在module中把对象生成
@Modulepublic class LoginActivityModule { LoginActivity mLoginActivity; public LoginActivityModule(LoginActivity loginActivity) { mLoginActivity = loginActivity; } @Provides LoginActivityPresenter providerLoginActivityPresenter(){ return new LoginActivityPresenter(mLoginActivity); }}
5. 写好后就可以rebulid项目了,之后会生成一个daggerComponen类
@InjectLoginActivityPresenter mLoginActivityPresenter;
//使用dagger2生成presenter对象DaggerLoginActivityComponent.builder().loginActivityModule(new LoginActivityModule(this)).build().in(this);
6. 然后就可以使用presenter内部的方法了.
mLoginActivityPresenter.login(params);
0 0
- Dagger2的学习笔记
- Dagger2学习笔记
- Dagger2 学习笔记
- Dagger2 学习笔记
- Dagger2学习笔记
- dagger2学习笔记
- Dagger2的学习过程
- Dagger2学习笔记(一)
- Dagger2学习笔记(二)
- dagger2 + RxJava +Retrofit 学习笔记
- Dagger2学习笔记之配置
- Dagger2学习笔记之基本概念
- Dagger2学习笔记之Singleton
- Dagger2学习笔记之dependencies
- Dagger2学习笔记之Qualifier
- dagger2框架的学习理解
- Dagger2学习笔记之Lazy和Provider
- Kotlin学习笔记——Dagger2
- 【机器学习中的数学】多项式分布及其共轭分布
- Oracle中Start with...Connect By循环加载树结构
- 简易分析LPC17xx从上电到main
- MongoDB学习(四)——MongoDB修改记录
- 502. IPO
- Dagger2的学习笔记
- Java学习之Iterator(迭代器)的一般用法 (转)
- echarts动态图表
- git版本回退
- Nginx的缓存:proxy_cache和fastcgi_cache
- Reflector 已经out了,试试ILSpy
- 动画二-属性动画
- IT售前、项目售前、软件售前经验总结
- LDA-math-认识Beta/Dirichlet分布