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

#android #roboguice

#Android #roboguice

Вопрос:

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

Ответ №1:

ДА. Это проще с 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, чтобы узнать, какие вызовы вам нужно выполнить.

Ответ №2:

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

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