использование roboguice без расширения Activity - PullRequest
4 голосов
/ 02 октября 2011

Есть ли способ использовать roboguice без расширения класса Activity с RoboActivity.

Ответы [ 2 ]

10 голосов
/ 02 октября 2011

Да. Это проще с 1.2-SNAPSHOT, который еще не в бета-версии. Чтобы использовать 1.2, просто добавьте следующее в onCreate (), onContentChanged () и onDestroy (). Вам не нужны биты о EventManager, если вы не используете события roboguice:

@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 , чтобы узнать, какие звонки вам нужно сделать.

0 голосов
/ 04 мая 2016

Это работает, но вы должны реализовать RoboContext и объявить это

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