前言
当 Android APP 第一次启动时,往往会有一段时间的白屏。随着代码量增加和初始化逻辑变多,白屏时间会延长,严重影响用户体验。我们需要通过技术手段处理这一间隙,让用户感觉不到明显的白屏过渡。
问题分析
Android 系统启动应用时,会先显示一个默认的窗口背景(通常是白色或黑色),然后才加载应用的第一个 Activity 布局。如果 Application 的 onCreate 方法中有耗时操作,或者 Activity 布局资源加载较慢,用户就会看到长时间的空白界面。
解决方案
主要通过设置启动页(SplashActivity)的主题背景,使其在系统默认背景之上立即显示自定义内容,从而掩盖白屏。
1. 创建欢迎页(SplashActivity)
新建一个继承自 AppCompatActivity 的 SplashActivity,作为应用入口。
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
// 执行必要的初始化逻辑,如检查登录状态等
startMainActivity();
}
private void startMainActivity() {
// 延迟跳转或条件跳转
new Handler(Looper.getMainLooper()).postDelayed(() -> {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}, 2000);
}
}
2. 配置主题样式
为 SplashActivity 设置独立的主题,重点是设置 android:windowBackground,这是解决白屏的关键。
<style name="Theme.WhitePageDemoSplash" parent=>


