第一次发布问题,我是一个编码菜鸟,对不起,如果我做错了事。
我环顾四周,发现一个答案与我的问题有点类似: When / How to Create / Destroy Room Database
但是我不使用匕首,也不知道如何使用它。
我想问一下您何时应该建立会议室数据库实例?假设我的应用在整个数据库中都使用该数据库,是否应该在Main Activity的OnCreate中构建它?还是应该在用户尝试访问某些需要它的功能后才构建它?
这是相关代码:
y
那么基本上什么时候是运行上述代码的最佳时间?
如果这个问题没有道理,请告诉我。
答案 0 :(得分:0)
您的数据库Instance
将以Singleton
的形式建立,您可以在任何地方访问它,因为它只会创建一次。
请遵循此codelab tutorial以获得使用Room的清晰愿景
答案 1 :(得分:0)
创建一个应用程序类,您将在其中创建一个单例对象。您可以遍历此example。它说明了您的所有要求。
答案 2 :(得分:0)
内部版本本身不会打开/连接数据库,因此不会占用大量资源,因此可以在任何地方进行。通常,最好的地方可能是在MainActivity中构建。
直到您真正尝试对数据库执行某些操作(插入/更新/删除/查询)后,打开/连接才完成,这可能会占用大量资源。因此,为什么默认情况下,Room不允许您在主线程上执行任何操作(在构建时使用.allowMainThreadQueries
,可以用来覆盖此限制)。
您可以强制打开/连接,例如通过使用 SupportSQLiteDatabase 。例如theBuiltDatabase.openHelper.writableDatabase
(theBuiltDatabase代表已部分构建 的数据库)(它可以在不考虑allowMainThreadQueries
的主线程上运行)。但是,您可能不想这样做。