Roboguice 2.0将应用程序注入POJO

时间:2012-08-31 08:38:30

标签: android dependency-injection roboguice

我是Roboguice的新人,请帮忙。我有一个应用程序cal MyApplication,其中在onCreate方法中我初始化了一些数据。我还有一个POJO商务逻辑,我想在我的MainActivity中使用(参见下面的代码片段)。我需要将MyApplication注入POJO以访问我在应用程序onCreate中初始化的数据,但此代码在onCreate之前调用,并且我有{{1} }}

NullPointerException

2 个答案:

答案 0 :(得分:3)

编辑:根据RoboGuice custom module application context中的答案,在RoboGuice 2.0中找到了一种方法。

在AbstractModule构造函数中注入应用程序上下文,然后将其绑定到configure()中以便以后注入:

public final class MyModule extends AbstractModule
{
    private final MyApplication context;

    @Inject
    public MyModule(final Context context)
    {
        super();
        this.context = (MyApplication)context;
    }

    @Override
    protected void configure() {
        bind(MyApplication.class).toInstance(context);
    }

}

答案 1 :(得分:1)

如果您需要的数据不需要上下文,只需访问XML资源或res / raw,您可以从任何地方注入。

只需使用Roboguice.getInjector()即可获取Resources对象的副本。