我只是想用 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(class 和 bindings)建立的模式。所以像下面这样实现一个 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/