0
对于派生自RoboActivity的活动,我可以添加一个@Inject
注释,该注释在调用super.onCreate()
后调用onCreate()
;但是,如果我删除该字段并尝试从方法内检索相同类型的对象,则RoboGuice将抛出一个ConfigurationException
。RoboGuice @Inject注释起作用,但getInjector(this).getInstance()抛出ConfigurationException
示例代码的工作原理:
public class MyActivity extends RoboActivity {
@Inject private MyType instance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// instance is set
}
}
然而,这个例子不起作用:
public class MyActivity extends RoboActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doStuffThatCalls_getMyType_Eventually();
}
protected MyType getMyType() {
// Exception thrown here
return RoboGuice
.getInjector(this)
.getInstance(MyType.class);
}
}
而且,如果我添加字段,然后我可以使用getInstance()
像以前一样:
public class MyActivity extends RoboActivity {
@Inject
private MyType instance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doStuffThatCalls_getMyType_Eventually();
}
protected MyType getMyType() {
// This now works (of course, returns different instance of 'MyType')
return RoboGuice
.getInjector(this)
.getInstance(MyType.class);
}
}
我需要使用第二个示例,以便派生类可以返回不同的ins因为它可能在将来被错误地使用,所以不想离开该领域。
我该如何使用RoboGuice?
工作就像一个魅力。 –