組件依賴另一個組件的情況
public class PResent { String ss = "呵呵噠"; public Present(Context context) { }}@Modulepublic 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();}@Modulepublic 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
新聞熱點
疑難解答