Android app启动时白屏

我们在打开一个APP时,肯定希望它能够快速响应,然后快速启动。而当我们首次启动APP时,再到APP的第一个页面展示出来之前,这段时间会有几秒的白屏或者是黑屏出现。这样给用户的体验是十分不好的。
之所以会出现这种情况,是因为当我们在启动一个应用时,系统会检查是否已经存在这样一个进程,如果没有,Android系统会创建出一个新的进程分配给该应用,之后会依次创建和初始化Application类、然后启动SplashActivity类的。而显示白黑屏的问题就是在这段时间内产生的。
系统会在绘制页面加载布局之前 ,首先会初始化窗口(Window),而在进行这步操作时,系统会根据我们设置的Theme来指定它的Theme主题颜色。Window布局的顶层是DecorView,StartingWindow显示一个空的DecorView,进而我们在Style中的设置就决定了显示的是白屏还是黑屏。

解决方法:

在应用要启动的第一个页面(即应用的启动页)中设置一个单独的Theme主题。
   <activity
            android:name=".ui.SplashActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
    </activity>

上面代码中的android:theme="@style/SplashTheme" 指定了你的启动页的主题。

代码如下:
 <!--欢迎界面主题-->
    <style name="SplashTheme" parent="AppTheme">
        <item name="android:windowBackground">@drawable/splash_speed</item>
    </style>

到此APP启动时白屏的问题就搞定了!

猜你喜欢

转载自blog.csdn.net/u014619545/article/details/93464878