app出现白屏的解决方案(App突然白屏进不去了)

闪屏页简介

闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。

声明

为什么我的 APP 启动会白屏或者黑屏

有时候我们会发现,我们在启动我们自己的 APP 的时候,总是有那么点时间是白屏(黑屏),经过了白屏(黑屏)后才会进入我们的 APP。那么这是为什么呢?

模拟效果

下面我们模拟一下白屏的效果

20190522-splash开启.gif

可以看到打开 APP 的时候会有白屏的现象出现,当然我的这个演示 APP 程序没有那么复杂,因此我为了实现这种效果,就在 Application 中做了个睡眠。

 @Override
 public void onCreate() {
 super.onCreate();
 myApplication = this;
 try {
 Thread.sleep(2000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 }

   

这样就是出现了这种白屏的效果,由此可以得出结论,如果程序很复杂,并且有很多的初始化放到了 Application 中去完成了,那么这个时候刚打开程序的时候就会有个耗时,就会出现白屏的效果。

所以这里程序加载有个顺序,当打开一个 Activity 的时候,并且这个 Activity 所属的 Application 还没有运行,系统会首先为这个 Activity 创建一个进程,创建进程的时候就会调用 Application 的 onCreate 方法。进程的创建和 onCreate 内部的初始化是需要时间的,如果这个时候过长,没有任何反应的话,那么对于用户来说是不不知道的,用户还以为自己没有点到呢,所以很显然是不可能在原页面等待加载的,那么这个时候就有了 StartingWindow(PerviewWindow)的出现,StartingWindow 出现在应用程序进程创建并且初始化完成之前,是个临时的窗口,对应的 WindowType是 TYPE_APPLICATION_STARTING 作用就是告诉用户,系统已经收到我们的操作了,正在对程序进行初始化,只要初始化完毕后就会移除这个窗口。

所以其实我们看到的白屏或者黑屏就是 StartingWindow,那么为什么是白色或者黑色呢?我们一般都会给我们的 Application 和 Activity 设置 Theme,系统就会根据我们所设置的 Theme 来决定 StartingWindow 的颜色。我们都知道 Window 布局的顶层是 DecorView,而 StaringWindow 显示的是一个空的 DecorView,只是这个 DecorView 会应用我们的这个 Activity 所指定的 Theme。我们默认的 Theme 是 @android:style/Theme.Light 的话,这个时候就会产生白屏了。黑屏就是应用了 @android:style/Theme.Black,好了到这里我们就彻底明白为什么会出现白屏或者黑屏了。再顺便说一下 Activity 布局的绘制顺序:

  1. 绘制背景
  2. 绘制 View 本身的内容
  3. 绘制子 View
  4. 绘制修饰内容(例如滚动条)

解决黑白屏问题

通过上面我们已经知道为什么会出现这个问题了,那么解决起来就很简单了,只需要给启动页的样式添加一个背景就可以了,这样就达到了秒开的效果了!

@drawble/splashtrue设置的这个背景要和我的启动页搭配起来就行了!

       

个人号.png

(0)

相关推荐

  • win10锁屏后解锁总是在锁屏画面和登录界面切换

    不知道大家有没有遇到win10锁屏之后,再输入密码解锁发现进不去桌面,一直转圈圈,转完后又回到锁屏界面,要重新输入pin或密码,只有重启才能进入桌面的问题.前几天遇到这个问题之后,重置了电脑,一点点排 ...

  • win10下IE9浏览器打开网页出现白屏的解决方案

    win10下IE9浏览器打开网页出现白屏的解决方案 解决方案: 1.先关闭当前打开的所有 Internet Explorer 窗口和 Windows 资源管理器窗口.在开始搜索框中键入 Interne ...

  • 小米投屏神器怎么用?小米投屏神器app功能使用图文教程

    小米投屏神器app是由小米公司开发的,运行在苹果手机.小米手机和其他绝大部分安卓手机上的电视投屏软件,下载使用即可在电视上播放您手机上的内容.那么,小米投屏神器app怎么使用?又有那些功能呢?下面我们 ...

  • 如何将抖音app中的视频设置为手机动态锁屏?

    相信很多小伙伴都有在使用抖音app,其中的视频如何才能设置为手机动态锁屏呢?方法很简单,下面小编就来为大家介绍.具体如下:1. 首先,打开手机上的"抖音".进入首页后,长按我们想要 ...

  • 如何开启腾讯视频app中的缓存视频时禁止自动锁屏功能?

    相信很多小伙伴都有在使用腾讯视频app,其中的缓存视频时禁止自动锁屏功能如何才能开启呢?方法很简单,下面小编就来为大家介绍.具体如下:1. 首先,打开手机上的"腾讯视频".2. 进 ...

  • 如何将央视频APP中停课不停学的直播内容投屏到电视

    今天给大家介绍一下如何将央视频APP中停课不停学的直播内容投屏到电视的具体操作步骤.1. 首先打开手机上的央视频APP,然后选择学科打开直播内容,进入全屏模式下后,点击播放页面右上角的TV图标.2. ...

  • app兼容性测试怎么做(app兼容性测试考虑哪些方面)

    点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复"资源"."测试工具包"领取测试资源.本文3012字,阅读约需8分钟随着 A ...

  • 苹果App商店进不去怎么办

    相信使用苹果手机的朋友会经常遇到 App Store 应用商店进不去,打不开的时候.目前由于苹果的 App Store 应用商店还没有入住中国,所以有时候访问起来比较困难.这里介绍一种方法,可以有效解 ...

  • 宝藏软件app推荐(有哪些宝藏APP)

    哈喽!大家好,我是小易,欢迎来到我的知识分享站!今天给大家分享9款非常好用的iPhone手机宝藏App,你用过几款呢?可以发在评论区哟!1.皮皮工具箱一款完全免费并且特别实用的多功能集合App.它里面 ...

  • windows10系统出现win32kfull错误蓝屏的解决方案

    在使用windows10正式版系统过程中,我们难免都会遇到一些问题.比如,有用户反馈自己的电脑突然出现了win32kfull错误蓝屏,这该怎么办呢?接下来,小编就为大家分享下具体解决方案.只需要简单几 ...