【Android】解决启动APP闪黑/白屏
前言
问题:在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闪黑/白屏相关推荐
- 【Android】自定义theme解决进入app闪黑屏问题
每次启动app时总会闪一下黑屏,时间很短,一闪而过但是还是可以看的很清楚,虽然不影响运行,但是用户体验性极差,效果如图. 初感觉是app加载的问题,网上查相关资料后,该问题出现还是跟Activity生 ...
- android Theme启动APP闪屏处理
//1.设置背景图Theme <style name="Theme.AppStartLoad" parent="android:Theme"> &l ...
- android 闪屏黑色,android Theme启动APP闪屏处理
//1.设置背景图Theme @drawable/ipod_bg true //2.设置透明Theme true true android:theme="@android:style/The ...
- Android开发——解析App启动页(Splash)黑/白闪屏现象
前言 我在开发App的时候,出现App在启动会出现短暂的黑/白闪屏现象.这样现象对用户的体验感是会产生不好的影响,于是我就研究这个现象的起因和解决办法.不负有心人,我在翻了很多博客,踩完坑之后找到起因 ...
- Qt for Android解决启动时黑屏(或白屏)的问题
前言 在用Qt 开发 android程序时,打开软件的瞬间会出现黑屏(有些手机是上是白屏)闪动的问题,如果有启动页的话,那么黑屏是在启动页之前出现,整个页面的跳动,视觉冲击很大,我再之前的一篇文章中有 ...
- Android 启动APP时黑屏白屏的三个解决方案
Android 启动APP时黑屏白屏的三个解决方案 参考文章: (1)Android 启动APP时黑屏白屏的三个解决方案 (2)https://www.cnblogs.com/liqw/p/42634 ...
- Android 如何实现App在后台录屏
在 Android 中实现 App 在后台录屏主要需要使用到 MediaProjection API. MediaProjection API 是 Android 5.0(API Level 21)引 ...
- Genymotion 启动app闪退解决方案
Genymotion 启动app闪退解决方案 参考文章: (1)Genymotion 启动app闪退解决方案 (2)https://www.cnblogs.com/Test-road-me/p/536 ...
- 解决app一打开白屏和黑屏的问题
这是复制一位大神的,并亲测过:用作后续复习 链接:http://www.cnblogs.com/liqw/p/4263418.html 你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才 ...
最新文章
- Arcmap技巧总结
- 19个决定性时刻,2030年前,这些黑科技必将发生
- 启动targetcli时遭遇ImportError: cannot import name ALUATargetPortGroup故障
- 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
- always on sql 收缩日志_使用alwayson后如何收缩数据库日志的方法详解
- win10系统调用架构分析
- python int转str_用Python生成抖音字符视频!
- PNG免扣(抠)素材,直接应用才是设计师友好的帮助图片
- socket通信之epoll模型
- gw node节点 xshell连接 访问外网
- SRAM与DRAM的区别
- githug关卡小游戏,练习git
- wordpress文章页面添加字体增大减小链接
- Android用悬浮按钮实现翻页效果
- 图片提取文字很神奇?试试三步实现OCR!
- face++旷世科技实习生面试
- Midjourney之外21款免费的AI Image画图网站集合
- 认识计算机综合题,第一章 认识计算机试题.doc
- 揭开程序员身上的「专业面纱」:非科班程序员,都来自哪些专业?
- 计算机组成原理知识架构