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

Dagger2学习笔记之Lazy和Provider

2019-11-09 13:54:24
字体:
来源:转载
供稿:网友

继续Dagger2学习笔记之dependence的demo,将activity更改下

public class Main3Activity extends AppCompatActivity {    @PResentForContext    @Inject    Lazy<Present>     lazy;    @PresentForName    @Inject    Provider<Present> provider;    @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);        Present present = lazy.get();        Present present1 = provider.get();    }}其中Lazy(懒加载)的作用好比component初始化了一个present对象,然后放到一个池子里,需要的时候就get它,所以你每次get的时候拿到的对象都是同一个;并且当你第一次去get时,它才会去初始化这个实例.

procider(强制加载)的作用:

1:同上当你第一次去get时,它才会去初始化这个实例

2:后面当你去get这个实例时,是否为同一个,取决于他Module里实现的方式


上一篇:adb命令行

下一篇:自定义MVC

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