07.对Dagger中几个类的说明

2020-01-09  本文已影响0人  redrain39

关于Dagger2

前言

关于Dagger的相关注解已经在之前的几篇中进行了讲解和分析,部分注解也简单看了一下具体的实现过程,除了注解,Dagger中还有几个常用的类也要来了解一下。

Lazy

延迟注入,只有在调用 Lazy 的 get() 方法时才会初始化依赖实例注入依赖。

Provider

强制注入,但是每次调用get()方法是都会创建一个新的实例。

public class DirectlyInjectActivity extends AppCompatActivity {

    @Inject
    Provider<DirectlyInject> mDirectlyInject;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_directly_inject);

        DaggerDirectlyInjectComponent.create().inject(this);

        Log.d("Dagger测试", "DirectlyInject: " + mDirectlyInject.get());
        Log.d("Dagger测试", "DirectlyInject: " + mDirectlyInject.get());
        mDirectlyInject.get().log();

    }
}

打印的结果会发现两次调用的对象都不一样:


打印结果
上一篇下一篇

猜你喜欢

热点阅读