嗨,我来自 C#/.NET 的背景,并且已经学会了使用一点 Android。现在我想开始构建一个有趣的小应用程序,并且我要学习 IoC 框架。经过一番谷歌搜索后,我发现了 roboguice .但是我不知道如何整合它.On .
NET 我曾与 Ninject 和 Unity 合作过,并希望创建一种类似形式的构造函数注入,就像我从这些框架中获得的那样。
这是我到目前为止所拥有的以及我认为我已经弄清楚的:
这个类代表应用程序引导程序,在这里我将注册我的依赖配置类:
public class IOCApplication extends Application{
@Override
public void onCreate(){
super.onCreate();
RoboGuice.setBaseApplicationInjector(this, RoboGuice.DEFAULT_STAGE, RoboGuice.newDefaultRoboModule(this), new IOCModule());
}
}
这是依赖配置类:
public class IOCModule implements Module{
@Override
public void configure(com.google.inject.Binder binder) {
binder.bind(ITest.class).to(Test.class);
}
}
在我的 AndroidManifest 中,我添加了这个:
<application ... android:name="com.example.project2.IOCApplication">
这部分我不明白为什么我必须添加,但我认为这是告诉 Android IOCApplication 应该首先被实例化的东西。
这是我的 MainActivily 类,我为它添加了一个构造函数:
public ITest test;
public MainActivity(ITest test){
this.test = test;
}
当我尝试在我的 android 设备上运行它时,它看起来像是应用程序进入了一个无限循环,我认为 ITest 没有被实例化。
我究竟做错了什么?