Android app启动时白屏

首次启动APP到第一个页面展示前,可能出现几秒白屏或黑屏,影响用户体验。原因是启动应用时,系统创建新进程、初始化Application类和启动SplashActivity类期间产生该问题,且系统初始化窗口时按设置的Theme指定颜色。解决方法是在启动页设置单独Theme主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在打开一个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启动时白屏的问题就搞定了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值