编译代码:Dagger2会自动生成一个叫DaggerAppComponent的类,该类会根据@Component(modules = {AppModule.class, RetrofitModule.class...){ xxx; } } -最关键的是执行编译之后 Dagger2会自动生成很多类文件,其中一个就是DaggerXXX,这里的XXX就是用@Component标注的接口名,比如生成了DaggerAppComponent...appComponent; @Override public void onCreate() { super.onCreate(); appComponent = DaggerAppComponent.builder
interface AppComponent { void inject(MainActivity activity); } @Component :依赖的注入者,AppComponent在编译时会自动生成 DaggerAppComponent...文件,因为modules = {AppModule.class},所以DaggerAppComponent可以访问AppModule.class内的内容,接口内有方法 void inject(MainActivity...先编译一下,使AppComponent生成DaggerAppComponent文件,接着在MainActivity的onCreate()方法内添加以下代码 DaggerAppComponent.builder
appComponent; @Override public void onCreate() { super.onCreate(); appComponent = DaggerAppComponent.builder...); } public static AppComponent getComponent() { return appComponent; } } 上面代码中的DaggerAppComponent...AppComponent需要初始化依赖的两个Module(AppModule和RetrofitModule),这里生成的DaggerAppComponent是通过构建者模式进行初始化的。
MainComponent plus(MainModule module); SecondComponent plus(SecondModule module); } //注入 DaggerAPPComponent.builder...appComponent; @Override public void onCreate() { super.onCreate(); appComponent = DaggerAPPComponent.builder...就拿上个例子举例,如果每次 在 Activity 注入的时候 不从 Application 获取实例而是每次都是使用 DaggerAppComponent 创建一个新的 实例 ,那么就无法保证两个 Activity...// .plus(new SecondModule()) // .inject(this); // 获取新实例 DaggerAPPComponent.builder...super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取新实例 DaggerAPPComponent.builder
this); } // 建议写在MyApplication类里 public AppComponent getAppComponent(){ return DaggerAppComponent.builder
mAppComponent; @Override public void onCreate() { super.onCreate(); mAppComponent = DaggerAppComponent.builder...mFComponent; @Override public void onCreate() { super.onCreate(); mAppComponent = DaggerAppComponent.builder
public void onCreate() { super.onCreate(); mInstance=this; appComponent=DaggerAppComponent.builder
appComponent: AppComponent override fun onCreate() { super.onCreate() appComponent = DaggerAppComponent.factory
领取专属 10元无门槛券
手把手带您无忧上云