组件依赖另一个组件的情况
public class Present { String ss = "呵呵哒"; public Present(Context context) { } }
@Module public class AppModule { Context mContext; public AppModule(Context context) { this.mContext = context; } @Provides public Context provicesContext(){ return mContext; } }
@Component(modules = {AppModule.class}) public interface AppComponent { //暴露一个接口 Context proContext(); }
@Module public class ActivityModule { @Provides Present providesPresent(Context context){ return new Present(context); } }
@Component(dependencies = {AppComponent.class},modules = {ActivityModule.class}) public interface ActivityComponent { void injectActivity(Main3Activity activity); }
public class Main3Activity extends AppCompatActivity { @Inject Present mPresent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); AppComponent appComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build(); ActivityComponent activityComponent = DaggerActivityComponent.builder() .appComponent(appComponent) .activityModule(new ActivityModule()) .build(); activityComponent.injectActivity(this); Log.e("","******************"+mPresent.ss); } }打印结果为:**********呵呵哒
其中的关键点:
1:AppModule必须提供对象的接口(proContext)
2:ActivityComponent必须添加dependencies=xxxx