由于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 )
}
}
网友评论