【发布时间】:2021-02-01 14:25:15
【问题描述】:
我在我的应用程序中成功使用了 Android Room 和 LiveData 组合,但我注意到它在查询和将数据呈现给 UI 之间存在显着延迟。这不是世界末日,也不是不可持续的,但是当打开其他消息应用程序(如 WhatsApp)时,差异是巨大的。当我打开这样的应用程序时,对话和消息已经可用,甚至没有时间播放通常在 RecyclerView 列表中可用的默认动画。
另一方面,在我的应用中,我可以清楚地看到数据在呈现给 UI 之前所花费的延迟。
我了解将视图模型附加到片段意味着每次重建关联的片段时都会重建相同的视图模型,因此理论上将该视图模型附加到活动将意味着数据将在内存中存活更长时间,从而节省加载时间重建片段时,但第一次加载它仍然会显示明显的延迟,所以这不是一个理想的解决方案,我也不知道这是否是一个不明智的修改(将片段的视图模型附加到活动生命周期片段的)。
有什么方法可以改善这一点吗?也许 WhatsApp 使用了一个完全不同的 SQLite 库,它比 Room 快一点,所以我永远无法使用 Room 实现这种性能?
【问题讨论】:
-
你为什么要问whatsapp?你应该知道你不会在这里找到答案,因为我们不知道 whatsapp 是如何工作的
-
@a_local_nobody 抱歉,我的标题可能令人困惑。我现在会更新它。
-
我认为任何对 whatsapp 的引用都不会帮助您的事业,因为再次
Is perhaps WhatsApp using a completely different SQLite library我们不知道 :) 但是,如果您可以在这里重新创建一些延迟,我'我相信你会为你的帖子找到一些答案,所以这就是我想要得到的 -
我明白了,我会看看我是否可以通过一个显示所描述延迟的示例来改进这个问题。
标签: android database android-room whatsapp