闪屏页简介

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

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

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

模拟效果

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

可以看到打开 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 布局的绘制顺序:

绘制背景

绘制 View 本身的内容

绘制子 View

绘制修饰内容(例如滚动条)

解决黑白屏问题

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

@drawble/splash

true

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

Android开发之解决APP启动白屏或者黑屏闪现的问题

在做搜芽的过程中,发现那个外包人缘做的不行,由于启动的时候会停顿,然后白屏一会,联想到几个月前我在我的三僚企业通信软件里面拉起9K-Mail的时候也会黑屏,所以决定学习一下.解决一下.这不,万能的网络 ...

cordova+vue做的app解决引入cordova-plugin-splashscreen后启动先显示黑屏在显示启动页

先上项目目录结构cordova项目结构 android platform 结构 图中用红框框起来的为主要修改文件 这篇主要的讲cordova项目引用了cordova-plugin-splashscre ...

Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)

转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法   首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象 ...

Qt for Android 启动短暂的黑屏或白屏问题如何解决?

解决方法一: 使用透明主题 点击项目 -> 在 构建设置 里面找到 Build Android APK 栏目,点击 create templates 创建一个 AndroidManifest.x ...

解决android 启动白屏问题

Android 启动APP时黑屏白屏的三个解决方案 http://www.cnblogs.com/liqw/p/4263418.html android:windowSoftInputMode属性使用 ...

avd manger创建的虚拟机启动不起来,或者启动起来后黑屏

最近鼓捣安卓虚拟机,整的都差点重装系统,刚开始下载了genymotion_vbox,装完以后要在vbox中导入一个虚拟机,结果我导入完,虚拟机怎么也启动不了,然后各种找办法无果,最后重启电脑发现电脑也 ...

解决百度地图Fragment切换黑屏问题

https://blog.csdn.net/rentalphang/article/details/52076330 轻松解决啦!

electron 开发 - win7 运行后白屏 黑屏

解决思路: localhost:3000本地react项目确保运行无误 electron 官方demo跑一遍确认不是配置问题 切换electron版本,发现5可以6不行 google 官方issue ...

随机推荐

xamarin 手机顶部状态栏

修改显示xamarin开发的App的手机顶部状态栏, 步骤一:在项目UWP上的“引用”里右键“添加引用”,选择->Universal Windows->Windows Mobile Ext ...

如何面试前端工程师:GitHub 很重要

编者注:下面这篇文章从面试官的角度介绍到面试时可能会问到的一些问题. 我在Twitter和Stripe的一部分工作内容是面试前端工程师.其实关于面试你可能很有自己的一套,这里我想跟你们分享一下我常用的 ...

计算几何 HDOJ 4720 Naive and Silly Muggles

题目传送门 /* 题意:给三个点求它们的外接圆,判断一个点是否在园内 计算几何:我用重心当圆心竟然AC了,数据真水:) 正解以后补充,http://www.cnblogs.com/kuangbin/a ...

beautiful soup

beautiful soup是一个可以从html或者xml文件中提取数据的python库,它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式. beautiful soup 会帮你节省数 ...

操作系统处理内存时内存页为4k

windows和unix处理内存时,一个内存页的大小都为4k. 测试代码 int main() { while (1) { int *p = (int *)malloc(1024); getchar( ...

VS code自定义用户代码片段snippet

打开VS code,“文件-首选项-用户代码片段-选择新建全局代码片段文件 “ 属性介绍:prefix   就是你自定义的快捷键 body    就是你自定义的代码片段 description 就是这 ...

运用tp5上传图片,并生成缩略图

最近想做个相册,需要用到上传图像,并且考虑到性能问题,还要生成缩略图,就学习下.在网上看了很多大神写的文章,经过各种调试总算出来了,分享下.不好之处,多多指教 ​ ​ ps:运用tp5图片类生成缩略图 ...

Windows2003系统如何设置能让两个人共用一个桌面同时远程控制?

在windows 2003上,可以两人同时同一桌面控制一台服务器,交流非常方便. 解决方案: 两人都用终端远程登陆到服务器上,其中一人在“开始”--“管理工具”--“终端服务管理器”,选中对方的用户名 ...

vue2.0路由-适合刚接触新手简单理解

vue路由:vue-router vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并 ...

ibatis实现批处理

最近做一个小项目,用到Spring+iBatis.突然遇到一个很久远,却很实在的问题:在Spring下怎么使用iBatis的批处理实现? 大概是太久没有写Dao了,这部分真的忘得太干净了. 从4个层面 ...

linux中白屏变黑屏咋变,解决 APP启动白屏黑屏问题相关推荐

  1. 解决 APP启动白屏黑屏问题

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

  2. android应用白屏闪退,解决 APP启动白屏黑屏问题

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

  3. android app启动失败,Android应用App启动白屏(黑屏)问题解决

    Android应用App启动白屏(黑屏)问题解决 点击Android手机桌面的应用App icon图标后,Android启动这个应用,正常情况下会立即看到并进入到开发者自己写在MainActivity ...

  4. Android开发——解析App启动页(Splash)黑/白闪屏现象

    前言 我在开发App的时候,出现App在启动会出现短暂的黑/白闪屏现象.这样现象对用户的体验感是会产生不好的影响,于是我就研究这个现象的起因和解决办法.不负有心人,我在翻了很多博客,踩完坑之后找到起因 ...

  5. Android应用App启动白屏(黑屏)问题解决

    Android应用App启动白屏(黑屏)问题解决 点击Android手机桌面的应用App icon图标后,Android启动这个应用,正常情况下会立即看到并进入到开发者自己写在MainActivity ...

  6. Android 开发过程中遇到的棘手的问题笔记(SP引起的ANR,4G网络请求慢,app启动白屏)(持续更新)

    前言 经历过面试的人应该都知道,一般我们在进行技术面试的时候,面试官都会问你,在项目开发中遇到过什么棘手的问题?最后是怎么解决的?本人之前就问到过好几次,可是由于准备不足,一时之间想不起来所遇到过的& ...

  7. 解决android启动白屏问题

    第一步:在Sytle中自定义AppTheme <style name="AppTheme.Launcher"><item name="android:w ...

  8. linux日志中有空格,linux中统计排序的内容含有空白行的解决办法

    linux中统计排序的内容含有空白行的解决办法 废话不多说,直接上实例: 文件 sharkyun.log 的内容如下 [root@x201t ~]# cat -n sharkyun.log 1http ...

  9. linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...

    vsftpd登录慢主要是nameserver #定义DNS服务器的IP地址没有设置了,这样我们只要设置或更新一下nameserver即可解决了, 在使用vsftpd的过程中,一直以来都有一个问题就是在 ...

最新文章

  1. LeetCode简单题之七进制数
  2. 「caffe速成」caffe图像分类从模型自定义到测试
  3. 为什么越来越多的人都不再愿意做程序员了?
  4. Python 技术篇-百度语音API鉴权认证获取Access Token实例演示
  5. Eclipse搭建android环境及Genymotion模拟器安装问题解决方法
  6. 缓存中常见的概念及解决方案
  7. 如何在eclipse中查看源码
  8. 安卓.点击头像--编辑个人姓名--提交后.同时调用js关闭页面--返回上一层
  9. 数据下发非标准用户权限测试
  10. .NET轻量级任务管理类
  11. 注意:ORACLE 11G ADG RAC 这个情况下并不能高可用
  12. mac系统如何转换python版本_mac命令行切换python版本
  13. 东师2016年秋季计算机基础,东师2016年秋季《计算机基础》期末考核答案(1).doc
  14. 中国慕课java_回收的吸油毡通常应放置一边以备再次使用。
  15. .net登录界面_JAVA实现简单的用户登录客户端
  16. active mq topic消费后删除_【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍
  17. php对接微信调用不到头像,【微信公众号小程序】微擎获取用户头像失败的问题如何处理— 亲测 可用 持续更新...
  18. 吴思进——复杂美创始人首席执行官
  19. BZOJ 1122 [POI2008]账本BBB 神题
  20. C++练习题:求一元二次方程的根

热门文章

  1. java编写一个类book代表教材_java 请通过代码封装,实现如下需求: 编写一个类Book,代表教材:...
  2. 如何删除和添加word的脚注那个横线
  3. 服务器nvme硬盘识别不了,解决部分主板无法识别NVMe协议的固态硬盘问题
  4. 《看聊天记录都学不会C语言?太菜了吧》(1)我在大佬群里问基础问题没人理?
  5. Datawhale-机器学习算法-Task3 EM算法
  6. 《经济学是什么》精髓:如何用经济学家的眼光理解个人选择和市场经济?
  7. [18调剂]北方民族大学2018年硕士研究生调剂公告
  8. 游戏辅助制作核心--植物大战僵尸逆向之自动捡取阳光(二)
  9. 微信小程序做问卷——前端部分(生成问卷)
  10. 二层交换与MAC地址