我想創建工作經理,哪些工作可以注射成員。是否可以注入匕首ObjectGraph?
jobManager.queueJob(new Job1());
作業排隊後,我想在啓動它之前調用對象圖並注入作業域。
什麼是從JobManager類訪問對象圖的正確方法?
目前我正在注入具有ObjectGraph getter的android應用程序類。
我想創建工作經理,哪些工作可以注射成員。是否可以注入匕首ObjectGraph?
jobManager.queueJob(new Job1());
作業排隊後,我想在啓動它之前調用對象圖並注入作業域。
什麼是從JobManager類訪問對象圖的正確方法?
目前我正在注入具有ObjectGraph getter的android應用程序類。
匕首1不能注入注射器。 Dagger 2將具有強類型的注射器(您提供的界面),這些注射器是可注射的,有效地允許注射器注射。
如果使用從https://github.com/yigit/android-priority-jobqueue的JobManager,那麼你可以通過設置在JobManger Configuration對象注入與匕首1作業:
public JobManager createJobManager(MyApp myApp) {
Configuration config = new Configuration.Builder(app)
.injector(new DependencyInjector() {
@Override
public void inject(Job job) {
myApp.getObjectGraph().inject(job);
}
})
.build();
return new JobManager(app, config);
}
現在,添加到JobManager所有作業都將被注入。這假定你有一個公開getObjectGraph()方法的Application子類。
我的方法通過應用程序對象訪問圖是不好的做法嗎? –
注射器(guice術語)通常是不好的做法。具體來說,在應用程序內任意調用graph.get()是不明智的 - 它會創建易碎且難以測試的依賴關係。 Dagger 2.0將允許你對強類型和你自定義的類型有依賴關係,這樣你就可以更靈活地完成這類事情,而不需要使用「注入器」或「圖形管理對象」使你的代碼難以理解,並且很難測試。 –