首页 > 学院 > 开发设计 > 正文

Dagger2学习笔记之dependencies

2019-11-09 14:51:20
字体:
来源:转载
供稿:网友

组件依赖另一个组件的情况

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表