使用roboguice而不扩展Activity

时间:2011-10-02 12:38:36

标签: android roboguice

有没有办法在不使用RoboActivity扩展Activity类的情况下使用roboguice。

2 个答案:

答案 0 :(得分:10)

是。使用尚未测试的1.2-SNAPSHOT更容易。要使用1.2,只需将以下内容添加到onCreate(),onContentChanged()和onDestroy()中。如果您没有使用roboguice事件,则不需要有关EventManager的位:

@Override
protected void onCreate(Bundle savedInstanceState) {
    RoboGuice.getInjector(this).injectMembersWithoutViews(this);
    super.onCreate(savedInstanceState);
}

@Override
public void onContentChanged() {
    super.onContentChanged();
    RoboGuice.getInjector(this).injectViewMembers(this);
}


@Override
protected void onDestroy() {
    try {
        RoboGuice.destroyInjector(this);
    } finally {
        super.onDestroy();
    }
}

如果您正在使用RoboGuice 1.1.x(最新的稳定版本),那么原理是相同的,但调用稍有不同。请查看1.1 RoboActivity source,了解您需要拨打哪些电话。

答案 1 :(得分:0)

它可以工作,但你必须实现RoboContext并声明这个

protected HashMap<Key<?>,Object> scopedObjects = new HashMap<>();