As we all know, many Android apps display a white screen very briefly before their first Activity
comes into focus. This problem is observed in the following cases:
Android apps that extend the global Application
class and
perform major initializations therein. The Application
object is always created before the first Activity
(a fact that can
be observed in the debugger), so this makes sense. This is the cause of the delay in my case.
Android apps that display the default preview window before the splash screen.
Setting android:windowDisablePreview = "true"
obviously does not work here. Nor can I set the parent theme of the splash screen to Theme.Holo.NoActionBar
as described here, because [unfortunately] my splash screen makes use of an ActionBar
.
Meanwhile, apps that do not extend the Application
class do not show the white screen at startup.
The thing is, ideally the initializations performed in the Application
object need to occur before the first Activity
is shown. So my question is, how can I perform these initializations on app startup without using an Application
object? Possibly using a Thread
or Service
, I suppose?
This is an interesting problem to think about. I can't bypass it the usual way (by setting the NoActionBar
theme), as tragically my Splash screen actually has an ActionBar
due to some unrelated reasons.
Note:
I have already referred to the following questions:
References:
please add this line into your app theme
<item name="android:windowDisablePreview">true</item>
for more information : https://developer.android.com/topic/performance/vitals/launch-time#themed