gpt4 book ai didi

android - 如何获取 Room 数据库大小

转载 作者:行者123 更新时间:2023-12-05 00:16:08 27 4
gpt4 key购买 nike

我想在我的 Android 应用程序中监控我的 Room 数据库的大小。我四处搜索了一段时间,发现关于具体如何执行此操作的信息很少。是否有任何 Room (SQLite) 命令来确定数据库大小?

最佳答案

一段时间后,四处搜索,我发现了一些我测试过的“旧的”(又名古老的)pragma 调用,并且它以某种方式起作用。不需要获取确切的值,但需要提示用法。

您可以像这样在 Room 中执行 @Dao @Query:

@Dao
interface SystemDao{
@Query("""
SELECT s.*, c.*
FROM pragma_page_size as s
JOIN pragma_page_count as c
""")
suspend fun getDatabaseSizeInfo():List<SystemDatabaseSizeInfo>
}

在你定义的数据类“pojo”中:

data class SystemDatabaseSizeInfo(
var page_size:Int?=null,
var page_count:Int?=null
)

因为 pragma 查询的结果是 page_size 和 page_count。这些以后可以相乘,或单独呈现。

您可以在此处阅读有关 SQLite pragma 调用的信息: https://www.sqlite.org/pragma.html

还有许多其他实用查询可能有用,但您应该明智地使用它们,因为其中一些可能对 SQLite 数据库的稳定性造成破坏。

Android IDE/lint 可能会使这些命令无效(红色),但如果您有 AS4.1Cx (C6+),您可以在数据库检查器工具中运行其中一些命令以查看它们是否有效。我已经在这里提交了一个 issuetracker 事件:https://issuetracker.google.com/157374656

感谢所有回答的人,您通过深入的谷歌搜索引导我走上了正确的道路...

关于android - 如何获取 Room 数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61988697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com