2017-06-14 49 views
0

我使用數據在我的Android項目結合注入的內容來看,也是我使用匕首2DI是確定使用dagger2

主要用於設置與數據綁定開發內容視圖應該做這樣的事情:

YouLayoutClass = DataBindingUtil.setContentView(Activity, Layout); 

我提供「YoutLayoutClass」,在匕首模塊和我的活動注入它,但問題是,這是一個很好的做法嗎?

+0

在代碼中使用匕首有兩個主要原因:解耦和可測試性。我認爲沒有理由這樣做,因爲無論如何,內容視圖與活動緊密結合在一起,並且您不需要在測試中嘲笑它 – Buckstabue

回答

2

從技術上講,你正在用這個定義一個圓引用。你只是沒有受到警告,因爲設置圖需要你對此積極主動。

當您明確向模塊提供活動時,依賴關係看起來像activity -> layout -> activity。此外,您正在使用DataBindingUtil.setContentView()修改活動,因此爲活動提供依賴關係,實際上這是活動本身的屬性。

所以,絕對不要使用Dagger提供任何UI。尤其對於一項活動而言。