Android 启动白屏优化和热启动

2019-08-06  本文已影响0人  八分半

由于Activity使用了默认的them,应用启动时造成短暂的白屏现象。

一、启动白屏解决方案

更改splashActivity的them,设置背景图片或背景色并设置全屏显示

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@color/colorPrimary</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>

然后在manifest引用即可

<activity android:name=".SplashActivity"
            android:theme="@style/SplashTheme"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

二、热启动

通常我们按下back键时,activity的生命周期会执行onStop,onDestory ——> onCreate。造成我们试图被销毁了又得重新创建。但是,我们按下home键却是不一样的,activity的生命周期会执行onStop ——>onReStart,所以热启动就是以back键替换成了home键,其实app是被置到了后台,所以当你再次点击打开app时,它会马上的启动。

/**
     * App 热启动方式,实现应用程序秒开效果
     */
    @Override
    public void onBackPressed() {
        //直接返回桌面 ( Activity只执行onStop )
        if (isStartHome()) {
            Intent intent = new Intent("android.intent.action.MAIN");
            intent.addCategory("android.intent.category.HOME");
            startActivity(intent);
        } else {
            super.onBackPressed();//( Activity将执行onDestory )
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读