android - 如何设置启动画面一直持续到数据库加载?

标签 android android-studio kotlin android-room

我还是Android的新手。我在Architecture Components上遵循了此codelab,以从服务器在数据库中存储约2k个对象。

我使用layer-list(source)实现了初始屏幕,这意味着只要MainActivity有一些处理需要,初始屏幕就将持续。由于DB加载在后台线程上,因此可以避免这种情况。

这导致我的应用程序启动时没有启动时需要花费大约10秒钟以上的时间来加载数据,而所有内容几乎都被冻结了。加载后,一切正常,但编舞者传来的明显信息让我感到震惊:I/Choreographer: Skipped 1208 frames! The application may be doing too much work on its main thread.
因此,我的问题是,为了避免跳过所有这些帧,并且为了我的应用程序不会滞后,我如何实现SplashActivity(或MainActivity ??),以便在加载所有数据之前不启动MainActivity

最佳答案

异步加载数据库(我建议使用协程),然后在完成后开始 Activity

关于android - 如何设置启动画面一直持续到数据库加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60839454/

相关文章:

Android ORMlite 与 queryForAll() 的性能问题

XML 结束标记独占一行

android - 如何避免使用 getIdentifier 检索文本资源?

database - ReactiveMongoRepository没有保存我的数据

android - kotlin Android sortwith 数组问题

android - android 11 kotlin 中的包可见性

android - 按顺序将动画应用到多个 View

java - 使用 https(SSL 的自签名证书)连接到 VPS 上的解析服务器

android - 从我的数据库中获取记录数并将其存储在一个整数中

android - 更新到 Android Studio 3.6 后,应用程序在运行时崩溃