我还是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/