2015-06-01 20 views
0

任何人都可以建议如何在Android应用程序中与匕首结婚ORMLite?ORMLite with Dagger in Android

假设我有以下层:
UI [Activity] --> Business [POJO] --> DAO [ORMLite]

在注射用匕首“优越层”的每一层。
ORMLite创建DAO。

知道有几个选项可以从ORMLite初始化DAO。我们称之为[使用ORMLite命名示例]:“1.正常,2.没有帮手,3.没有基础”。

这里最自然的似乎是“没有帮手”的方法。
但也许有人测试了所有的方法,并可以列出每个的利弊?

+0

Dagger1 or Dagger2? – EpicPandaForce

+0

公平起见,我需要看到更多的代码来理解这里的体系结构,以及它需要注入什么以及什么时候被创建。 – EpicPandaForce

回答

1

最后我从ORMLite的例子“NoBase”中获得了adatped方法。

创建模块,这给DatabaseHelper的单例:

@Module(library = true, complete = false) 
public class DbModule { 

    @Provides 
    @Singleton 
    DatabaseHelper provideDatabaseHelper(Context context) { 
     return new DatabaseHelper(context); 
    } 

    // ... 

} 

其中:

public class DatabaseHelper extends SQLiteOpenHelper { 

    public DatabaseHelper(Context context, FileSystemService fileSystemService) { 
     super(context, "/Path/To/MyDbFile.db", null, DB_VERSION); 
    } 

    // ... 

} 

而且在你的业务模块使用DatabaseHelper做DB插入,查询等

@Module(library = true, complete = false) 
public class BusinessModule { 

    @Provides 
    @Singleton 
    MyService provideMyService(DatabaseHelper databaseHelper) { 
     MyService s = new MyServiceImpl(databaseHelper); 
     return s; 
    } 

    ... 

} 

注意:此解决方案尚未支持交易 - 这项壮举。还在等待实施。