繼續(xù)Dagger2學(xué)習(xí)筆記之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初始化了一個(gè)present對(duì)象,然后放到一個(gè)池子里,需要的時(shí)候就get它,所以你每次get的時(shí)候拿到的對(duì)象都是同一個(gè);并且當(dāng)你第一次去get時(shí),它才會(huì)去初始化這個(gè)實(shí)例.procider(強(qiáng)制加載)的作用:
1:同上當(dāng)你第一次去get時(shí),它才會(huì)去初始化這個(gè)實(shí)例
2:后面當(dāng)你去get這個(gè)實(shí)例時(shí),是否為同一個(gè),取決于他Module里實(shí)現(xiàn)的方式
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注