最後我從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;
}
...
}
注意:此解決方案尚未支持交易 - 這項壯舉。還在等待實施。
Dagger1 or Dagger2? – EpicPandaForce
公平起見,我需要看到更多的代碼來理解這裏的體系結構,以及它需要注入什麼以及什麼時候被創建。 – EpicPandaForce