android - Android 版 ORMLite : Bind DAO with Roboguice

标签 android ormlite roboguice

我只是想用 ORMLite 设置我的 Android 项目。我正在使用 Roboguice 进行 DI。 现在我的问题是,这里是否有人可以帮助让这些人一起工作。

我已经设置了扩展 OrmLiteSqliteOpenHelper 的助手类。现在我想知道如何注入(inject)正确的 DAO 类。

一般的最佳实践会很棒。因为使用 OrmLiteBaseActivity 不应该真正适用,因为那应该由 Roboguice 处理。问题只是:如何?

我非常感谢任何帮助、您的经验、最佳实践等。

最佳答案

如果您从 OrmLiteBaseActivity 扩展,您将无法从 RoboActivity 扩展.没关系,只需调用以下命令(假设 roboguice 1.1)对您的非 roboactivity Activity 执行注入(inject):

((InjectorProvider)getApplicationContext()).getInjector().injectMembers(this)

一旦你有了它,你就可以执行你的 Dao 对象的注入(inject)。

要注入(inject)您的 DAO,我建议您遵循 SystemServiceProvider(classbindings)建立的模式。所以像下面这样实现一个 DaoProvider:

class DaoProvider<T> implements Provider<T> {
    protected ConnectionSource conn;
    protected Class<T> clazz;

    public DaoProvider( ConnectionSource conn, Class<T> clazz ) {
        this.conn = conn;
        this.clazz = clazz;
    }

    @Override
    public T get() {
        return DaoManager.createDao( conn, clazz  );
    }
}

提供绑定(bind)。您需要为要注入(inject)的每种 DAO 类型执行一个操作:

bind(MyDaoObjectType.class).toProvider(
      new DaoProvider<MyDaoObjectType>(conn,MyDaoObjectType.class));

然后您可以将其注入(inject)到您的 Activity 或其他任何地方:

@Inject MyDaoObjectType myDaoObjectType;

关于android - Android 版 ORMLite : Bind DAO with Roboguice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751918/

相关文章:

android - 从大型 XML 填充 ListView

Android Ormlite - 使用条件 where 子句构建查询

android - 自定义 ActionBar 和 RoboGuice 注入(inject)

android - 我的 robofragment 无法注入(inject) View (roboguice 2.0)

android - 应用程序在发布时崩溃,而在调试时不会

android - 是否可以使用 Roboguice 注入(inject)维度?

android - 如何使用完成发回数据?

java - 可以确定用户是否实时点击了任何通知(不仅仅是来 self 的应用程序)?

android - 限制在 Google Play 上下载应用程序的访问权限

java - 如何创建接受未知类类型并返回正确对象的辅助方法