我有一个使用Room数据库的应用程序。如何知道已达到数据存储的最大限制?如果应用程序超过了该限制,会发生什么?它会影响已经存储的数据还是只会停止添加新数据?
我有一个使用Room数据库的应用程序。如何知道已达到数据存储的最大限制?如果应用程序超过了该限制,会发生什么?它会影响已经存储的数据还是只会停止添加新数据?
来自文档:
Room持久化库提供了一个在SQLite上的抽象层。
因此我认为Room与SQLite有相同的限制。
来自SQLite中的限制:
最大数据库大小
每个数据库由一个或多个“页面”组成。在单个数据库中,每个页面的大小相同,但不同的数据库可以拥有512到65536之间是2的幂次方页大小。数据库文件的最大大小为4294967294页。以最大的页面大小65536字节计算,这意味着最大数据库大小约为1.4e+14字节(281 TB,256 tebibyte,281474 GB或256,000 gibibyte)。
我怀疑你不会触及这个限制,相反我认为你可能会填满设备上所有可用的内存。
如何知道数据存储的最大限制已经达到?
查看这个答案,非常详细。
如果应用超过了这个限制会发生什么?
我真的认为这取决于你所做的操作,但为了避免崩溃,你可以像链接答案中那样事先检查内存。