【Android】解决启动APP闪黑/白屏 您所在的位置:网站首页 安卓11黑域解决卡屏 【Android】解决启动APP闪黑/白屏

【Android】解决启动APP闪黑/白屏

2024-07-16 14:37| 来源: 网络整理| 查看: 265

前言

问题:在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 实验室设备网 版权所有