【发布时间】:2019-03-05 06:01:15
【问题描述】:
因此,我正在创建此应用程序,其中包含大量不应保留在设备中的个人信息和数据,以避免出现安全问题。在了解 Room 时,我遇到了这个 Room.inMemoryDatabaseBuilder(),正如文档所述:
为内存数据库创建 RoomDatabase.Builder。当进程被杀死时,存储在内存数据库中的信息会消失。建立数据库后,您应该保留对它的引用并重复使用它。
我想知道这是否适合我的情况。由于数据只会存在于内存中,不会存储在设备中。
这似乎是个好主意。我唯一担心的是我还没有在实际应用程序中看到它的实现。我看到这个Room.inMemoryDatabaseBuilder() 使用的唯一用例是用于测试(因此您不必担心每次测试运行时都会清理数据库)。
谁能给点建议?将不胜感激。
非常感谢。
【问题讨论】:
-
"My only concern is that I haven't seen an implementation of this in an actual application yet."- 实现与由物理文件支持的数据库没有区别 -
@pskink 是的,我明白这一点。我实际上指的是实际用例,而不是实现细节。他们是一样的。也许为了简化,我的问题只是我的想法是否是一个好主意?为什么?
-
是的,这是个好主意——如果你想保留复杂的数据并对它们执行大量复杂的查询,你总是可以使用大量代码来列出列表/地图等(尤其是当不使用java.util.stream 包),但您可以使用基于内存的房间数据库来代替它
-
哇!您应该将其发布为答案,以便我可以对其进行标记和投票以供将来参考! :) 只是一个跟进,通过这种方法我还需要照顾一些事情吗?
-
在普通的 Android 设备上,您的应用程序进程将被随机终止,并且它将丢失存储在内存数据库中的所有数据。对我来说,生产用途听起来不是一个好主意。
标签: android android-room android-architecture-components