众所周知,许多Android应用在首次Activity
聚焦之前都会非常短暂地显示白屏。在以下情况下会出现此问题:
扩展全局
Application
类并在其中执行主要初始化的Android应用。该Application
对象总是在第一个对象之前创建Activity
(这可以在调试器中观察到),因此这很有意义。这是我的案件延误的原因。在初始屏幕之前显示默认预览窗口的Android应用。
设置android:windowDisablePreview = "true"
显然在这里不起作用。我也无法将初始屏幕的父主题设置Theme.Holo.NoActionBar
为此处所述,因为[不幸的是]我的初始屏幕使用了ActionBar
。
同时,未扩展Application
类的应用程序在启动时不会显示白屏。
问题是,理想情况下,在Application
对象中执行的初始化需要在显示第一个对象之前进行Activity
。所以我的问题是,如何在不使用Application
对象的情况下在应用启动时执行这些初始化?我想可能使用Thread
或Service
?
这是一个有趣的问题。我无法以通常的方式绕过它(通过设置NoActionBar
主题),因为可悲的是我的启动画面实际上ActionBar
由于某种不相关的原因而出现故障。
注意:
我已经提到以下问题:
参考文献:
Application
类后,您可能会发现这仍然是一个问题。这是由于更新版本的Android“冷启动”应用程序的方式。Google实际上在今年解决了Google I / O的启动时间,根据我的记忆,它将以N固定。同时,您应该看一下Google所谓的“品牌启动屏幕”。这是一个有关如何创建它的示例:antonioleiva.com/branded-launch-screen-开始时不要再有白屏了;-)而且请不要使用启动屏-这对用户来说很烦人。