如何使用依赖注入来创建片段或活动

时间:2016-06-16 15:21:44

标签: android android-fragments dagger-2 roboguice

我正在编写SDK,供第三方使用。该SDK提供了一系列ActivityFragment之间的复杂互动。我们希望能够做的事情之一是允许SDK的用户通过子类化我们提供的Activity和/或Fragment来定制功能。目前,使用工厂有点笨拙地处理模型:

class WidgetActivity extends Activity {
    public WidgetFragment buildWidgetFragment() {
        return new WidgetFragment();
    }
}

class WidgetFragment extends Fragment {
}

class IntentFactory {
    public WidgetActivity buildWidgetIntent() {
        return new Intent(WidgetActivity.class);
    }
}

但是,这意味着如果用户想要自定义WidgetFragment,他们必须提供IntentFactory,WidgetActivity和WidgetFragment的子类。更重要的是,WidgetFragment实际上是在两个或三个不同的Activity之间使用的,因此它们也必须提供每个Activity的子类,并且没有真正的保护来防止丢失其中的一些。显然,这可以通过添加FragmentFactory来缓解:

class FragmentFactory {
    public WidgetFragment buildWidgetFragment() {
        return new WidgetFragment();
    }
}

但是,在某些时候,有人认为这可能适用于应用IoC和DI模型。

在Activity或Fragment中有很多做DI的例子,但到目前为止,我还没有找到任何使用DI模型创建正确的Activity或Fragment的例子。

是否可以使用RoboGuice或Dagger2?

若然,怎么样?

还有其他替代方案吗?

0 个答案:

没有答案