前言

问题:在App启动过程中会出现闪白屏或黑屏的一段时间才进入布局界面。这样的体验十分不好。

首先来了解一下

冷启动

当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。

热启动

当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。

问题之源

Application 或 Activity 的Theme比如使用了以下 Theme:

<style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar"><!-- 令启动App时,出现闪白屏-->
</style>
<style name="AppTheme" parent="@android:style/Theme.Black.NoTitleBar"><!-- 令启动App时,出现闪黑屏-->
</style>

原因:当启动App时,此时后台无改App线程的缓存,就会分配一个新线程给这个应用,并创建初始化Application类,

系统会在加载初始化布局之前(Activity 中 onCreate()-->setContentView()),首先会初始化窗口Window,而Window顶层是一个DecorView,此时的背景属性设置就是由Theme设置的值(没有则默认值),其次才执行setContentView()。所以就出现了闪白或黑屏的现象。

解决方案

此方案是 main入口启动 SplashActivity 启动页 ,在onCreate() 方法中新建线程延迟时间启动 MainActivity。

核心代码 系统背景属性:

<item name="android:windowBackground">@drawable/image</item>

定义style: 

<style name="SplashTheme" parent="AppTheme"><!--设置背景图片--><item name="android:windowBackground">@drawable/image</item>
</style>

在AndroidManifest中引用

<activity android:name=".SplashActivity"android:theme="@style/SplashTheme"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

在SplashActivity onCreate()代码中

new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(3000);}catch (InterruptedException e){}startActivity(new Intent(SplashActivity.this, MainActivity.class));finish();}
}).start();

【Android】解决启动APP闪黑/白屏相关推荐

  1. 【Android】自定义theme解决进入app闪黑屏问题

    每次启动app时总会闪一下黑屏,时间很短,一闪而过但是还是可以看的很清楚,虽然不影响运行,但是用户体验性极差,效果如图. 初感觉是app加载的问题,网上查相关资料后,该问题出现还是跟Activity生 ...

  2. android Theme启动APP闪屏处理

    //1.设置背景图Theme <style name="Theme.AppStartLoad" parent="android:Theme"> &l ...

  3. android 闪屏黑色,android Theme启动APP闪屏处理

    //1.设置背景图Theme @drawable/ipod_bg true //2.设置透明Theme true true android:theme="@android:style/The ...

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

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

  5. Qt for Android解决启动时黑屏(或白屏)的问题

    前言 在用Qt 开发 android程序时,打开软件的瞬间会出现黑屏(有些手机是上是白屏)闪动的问题,如果有启动页的话,那么黑屏是在启动页之前出现,整个页面的跳动,视觉冲击很大,我再之前的一篇文章中有 ...

  6. Android 启动APP时黑屏白屏的三个解决方案

    Android 启动APP时黑屏白屏的三个解决方案 参考文章: (1)Android 启动APP时黑屏白屏的三个解决方案 (2)https://www.cnblogs.com/liqw/p/42634 ...

  7. Android 如何实现App在后台录屏

    在 Android 中实现 App 在后台录屏主要需要使用到 MediaProjection API. MediaProjection API 是 Android 5.0(API Level 21)引 ...

  8. Genymotion 启动app闪退解决方案

    Genymotion 启动app闪退解决方案 参考文章: (1)Genymotion 启动app闪退解决方案 (2)https://www.cnblogs.com/Test-road-me/p/536 ...

  9. 解决app一打开白屏和黑屏的问题

    这是复制一位大神的,并亲测过:用作后续复习 链接:http://www.cnblogs.com/liqw/p/4263418.html 你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才 ...

最新文章

  1. Arcmap技巧总结
  2. 19个决定性时刻,2030年前,这些黑科技必将发生
  3. 启动targetcli时遭遇ImportError: cannot import name ALUATargetPortGroup故障
  4. 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
  5. always on sql 收缩日志_使用alwayson后如何收缩数据库日志的方法详解
  6. win10系统调用架构分析
  7. python int转str_用Python生成抖音字符视频!
  8. PNG免扣(抠)素材,直接应用才是设计师友好的帮助图片
  9. socket通信之epoll模型
  10. gw node节点 xshell连接 访问外网
  11. SRAM与DRAM的区别
  12. githug关卡小游戏,练习git
  13. wordpress文章页面添加字体增大减小链接
  14. Android用悬浮按钮实现翻页效果
  15. 图片提取文字很神奇?试试三步实现OCR!
  16. face++旷世科技实习生面试
  17. Midjourney之外21款免费的AI Image画图网站集合
  18. 认识计算机综合题,第一章 认识计算机试题.doc
  19. 揭开程序员身上的「专业面纱」:非科班程序员,都来自哪些专业?
  20. 计算机组成原理知识架构

热门文章

  1. 苹果,游戏手柄应该被推出
  2. echarts图表添加背景图片
  3. GitHub贡献全球第5,超15,000名软件工程师,后深度学习时代英特尔如何「软硬兼施」
  4. Mac pycharm 社区版 怎么连接服务器
  5. 企业快速创新的基石——用友 BIP | iuap云平台
  6. 阿里巴巴在高校建新零售“黄埔军校”,改变95后的迷茫
  7. PDF拆分成多个页面怎么办?这三个方法让你实现将文件拆分成多页
  8. 让算法互掐的炸飞机游戏平台
  9. 手机实名制果真成了空头口号
  10. Win10安装IIS问题