众所周知,许多 Android 应用程序在第一个 Activity
进入焦点之前会非常短暂地显示白屏。在以下情况下会出现此问题:
扩展全局
Application
类并在其中执行主要初始化的 Android 应用程序。Application
对象总是在第一个Activity
之前创建(可以在调试器中观察到这一事实),所以这是有道理的。这就是我的案件延迟的原因。在初始屏幕之前显示默认预览窗口的 Android 应用程序。
设置 android:windowDisablePreview = "true"
显然在这里不起作用。我也不能将启动画面的父主题设置为 Theme.Holo.NoActionBar
如此 处 所述,因为 [不幸的是] 我的启动画面使用了 ActionBar
。
同时,不扩展 Application
类的应用程序在启动 时不会 显示白屏。
问题是,理想情况下,在 Application
对象中执行的初始化需要在显示第一个 Activity
之前 发生。所以我的问题是,如何在 不 使用 Application
对象的情况下在应用程序启动时执行这些初始化?可能使用 Thread
或 Service
,我想?
这是一个值得思考的有趣问题。我无法以通常的方式绕过它(通过设置 NoActionBar
主题),不幸的是,由于一些不相关的原因,我的启动画面实际上有一个 ActionBar
。
笔记:
我已经提到了以下问题:
参考:
原文由 Yash Sampat 发布,翻译遵循 CC BY-SA 4.0 许可协议
白色背景的问题是由于应用程序加载到内存时android的冷启动引起的,可以通过以下方式避免:
布局
图片脸
将此主题添加到清单中的启动画面
这会产生这样的效果
有关更多详细信息和更多解决方案,您可以查看此 BlogPost