多模块项目中的房间数据库

mos*_*jam 1 android android-room

在我的项目,我有一个app module与“ app”名称和Android Library所谓的“ app_lib”。我想要一个database既可以使用这个database.

问题是,我该怎么做?

到目前为止,我已经完成了我的工作,我已经在 ' ' 中创建了我的models和,并且我已经以这种方式调用了 ' ' 。现在,问题是,您在 ' ' 中如何做?Dao's classesapp_libabstract class databaseappcreated tablesapp_libCall the queries

Zoh*_*mir 6

创建 AppDatabase 时:

AppDatabase db = Room.databaseBuilder(getApplicationContext(),
        AppDatabase.class, "database-name").build();
Run Code Online (Sandbox Code Playgroud)

第二个参数是数据库的名称,如果你在两个模块中给相同的名称,它应该使用相同的数据库,前提是它们是同一个应用程序的一部分。

你不应该从你的应用模块中导入模型和 dao。你的应用模块应该依赖于库而不是相反。

但是,如果您不想将相同的类文件复制到两个模块中,您可以将房间类移动到库中并从 lib 模块导入这些类。如果您不希望这些类成为 lib 模块的一部分,您可以创建另一个处理数据库操作的模块,然后在库模块和应用程序模块中使用该模块中的类。