Android应用App启动白屏(黑屏)问题解决

Android应用App启动白屏(黑屏)问题解决

点击Android手机桌面的应用App icon图标后,Android启动这个应用,正常情况下会立即看到并进入到开发者自己写在MainActivity(配置启动模式为android.intent.category.LAUNCHER的主acitivity)。但是现在业界开发的App越来越复杂和沉重,往往会在App启动最初在application里面配置和初始化很多操作。这导致在App启动后在application里面的onCreate里面完成了太多的耗时操作,以至于花费很久时间进入启动的那个作为launcher的MainActivity,这一段时间间隙会发生白屏现象(Android高版本),或者黑屏现象(Android低版本) 。解决问题的方案之一是在作为launcher的MainActivity里面配置android:theme,这个theme定义了一些特殊的配置,去掉Android在初始化阶段的默认显示背景,res/values/styles.xml里面定义一个launcher_activity_style:

    <style name="launcher_activity_style" parent="@style/AppTheme">
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowDisablePreview">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowBackground">@null</item>
        <item name="android:background">@null</item>
    </style>

再把这个launcher_activity_style配置成MainActivity的android:theme:

        <activity
            android:name=".activity.MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            android:theme="@style/launcher_activity_style">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

其中style中的属性android:windowBackground可以配置一张资源drawable图片,这张drawable资源图片可以作为App启动时候的常规展示图,比如微信的月球启动图,新浪微博的白色logo启动图,即是这里设置的。

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/81536462