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?
工作就像一個魅力。 –