Sam*_*am7 8 android ormlite roboguice
我只是想用ORMLite设置我的Android项目.我正在使用Roboguice进行DI.现在我的问题是,这里是否有人可以帮助那些合作.
我已经设置了我的助手类扩展OrmLiteSqliteOpenHelper.现在我想知道如何注入正确的DAO类.
一般的最佳实践将是太棒了.因为使用OrmLiteBaseActivity不应该真正适用,因为这应该由Roboguice处理.问题是:如何?
我非常感谢任何帮助,经验,最佳实践等.
emm*_*mby 12
如果您从OrmLiteBaseActivity扩展,则无法从RoboActivity扩展.这没关系,只需调用以下内容(假设roboguice 1.1)对您的非机器人活动进行注射:
((InjectorProvider)getApplicationContext()).getInjector().injectMembers(this)
Run Code Online (Sandbox Code Playgroud)
完成后,您可以执行dao对象的注入.
为了注入您的DAO,我建议您遵循SystemServiceProvider(类和绑定)建立的模式.因此,实现如下的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 );
}
}
Run Code Online (Sandbox Code Playgroud)
提供绑定.您需要为要注入的每种DAO类型执行一次:
bind(MyDaoObjectType.class).toProvider(
new DaoProvider<MyDaoObjectType>(conn,MyDaoObjectType.class));
Run Code Online (Sandbox Code Playgroud)
然后您可以将其注入您的活动或其他任何地方:
@Inject MyDaoObjectType myDaoObjectType;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4793 次 |
| 最近记录: |