【Android】解决启动APP闪黑/白屏 | 您所在的位置:网站首页 › 安卓11黑域解决卡屏 › 【Android】解决启动APP闪黑/白屏 |
前言
问题:在App启动过程中会出现闪白屏或黑屏的一段时间才进入布局界面。这样的体验十分不好。 首先来了解一下 冷启动当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。 热启动当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。 问题之源Application 或 Activity 的Theme比如使用了以下 Theme: 原因:当启动App时,此时后台无改App线程的缓存,就会分配一个新线程给这个应用,并创建初始化Application类, 系统会在加载初始化布局之前(Activity 中 onCreate()-->setContentView()),首先会初始化窗口Window,而Window顶层是一个DecorView,此时的背景属性设置就是由Theme设置的值(没有则默认值),其次才执行setContentView()。所以就出现了闪白或黑屏的现象。 解决方案此方案是 main入口启动 SplashActivity 启动页 ,在onCreate() 方法中新建线程延迟时间启动 MainActivity。 核心代码 系统背景属性: @drawable/image定义style: @drawable/image在AndroidManifest中引用 在SplashActivity onCreate()代码中 new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); } catch (InterruptedException e) {} startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } }).start();
|
CopyRight 2018-2019 实验室设备网 版权所有 |