我应该何时建立会议室数据库实例?

时间:2020-01-16 13:00:13

标签: android android-room

第一次发布问题,我是一个编码菜鸟,对不起,如果我做错了事。

我环顾四周,发现一个答案与我的问题有点类似: When / How to Create / Destroy Room Database

但是我不使用匕首,也不知道如何使用它。

我想问一下您何时应该建立会议室数据库实例?假设我的应用在整个数据库中都使用该数据库,是否应该在Main Activity的OnCreate中构建它?还是应该在用户尝试访问某些需要它的功能后才构建它?

这是相关代码:

y

那么基本上什么时候是运行上述代码的最佳时间?

如果这个问题没有道理,请告诉我。

3 个答案:

答案 0 :(得分:0)

您的数据库Instance将以Singleton的形式建立,您可以在任何地方访问它,因为它只会创建一次。

请遵循此codelab tutorial以获得使用Room的清晰愿景

答案 1 :(得分:0)

创建一个应用程序类,您将在其中创建一个单例对象。您可以遍历此example。它说明了您的所有要求。

答案 2 :(得分:0)

内部版本本身不会打开/连接数据库,因此不会占用大量资源,因此可以在任何地方进行。通常,最好的地方可能是在MainActivity中构建。

直到您真正尝试对数据库执行某些操作(插入/更新/删除/查询)后,打开/连接才完成,这可能会占用大量资源。因此,为什么默认情况下,Room不允许您在主线程上执行任何操作(在构建时使用.allowMainThreadQueries,可以用来覆盖此限制)。

您可以强制打开/连接,例如通过使用 SupportSQLiteDatabase 。例如theBuiltDatabase.openHelper.writableDatabase(theBuiltDatabase代表已部分构建 的数据库)(它可以在不考虑allowMainThreadQueries的主线程上运行)。但是,您可能不想这样做。