1、当我们启动APP的时候为什么会白屏或者黑屏?
当我们点击App启动时,系统会创建一个进程,但是创建和初始化都需要时间,在此之前会做什么呢? 系统会创建一个临时窗口(Starting window)来告知用户已经点击启动了该APP。当APP创建和初始化完毕之后移除该窗口。 Starting Window 显示的就是你启动Activity的android:windowBackground属性,所以才会出现白屏或者黑屏的情况。
2、如何解决这一问题?
修改启动页的主题添加如下代码:
<style name="SplashTheme" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
注意:
如果设置<item name="android:windowIsTranslucent">true</item>
属性为true
同时APP设置setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在部分手机会奔溃。
解决办法:
1、启动页不设置竖屏显示。
2、设置属性值为false(但在部分手机还是会闪一下)
3、单独在AndroidManifest里为每个Activity设置固定竖屏。
如何使程序打到秒开的效果?
使用属性配置窗口为透明其实和白色一样,用户会有等待打开的不好体验。
直接在主题中配置窗口背景为过渡图片,达到应用秒开的感觉。
特此记录一下。