
?
一、白屏问题
在开发过程中遇到APP启动后出现白屏现象导致这种情况的原因是因为App中的代码在初始化。
说明:App启动后 系统会创建主线程;代码的运行和UI的渲染都在这个线程中运行;
因为其负责将事件分派给相应的界面微件,其中包括绘图事件,主线程负责向UI组件分发事件(包括绘制事件),在这个主线程里,你的应用和Android的UI组件发生交互;
重点:(再不做多线程的前提下)应用启动后APP应用中的代码开始初始化会堵塞 UI 页面的渲染(因为你的代码和UI都在带单线程中同时运行)。
(1)这里的堵塞分为两种:
1、严重堵塞
初始化的代码运行时间过程 严重应用UI线程的渲染 会出现点击APP启动后进入页面然后迅速黑屏卡2、3秒中时间 在显示页面
2、轻度堵塞
轻度堵塞也就是会出现短暂白屏的这种情况
解决办法:
Android 的单线程模式必须遵守两条规则:
- 不要阻塞 UI 线程
- 不要在 UI 线程之外访问 Android UI 工具包
(2)重度堵塞:
对于重度的堵塞可以使用多线程来解决,对于耗时间的代码可以写在子线程中
(3)轻度堵塞:
在theme样式中添加背景图
例如:
<item name="android:windowBackground">@drawable/bj</item>
<style name="SplashTheme" parent="Theme.Browser">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorAccent">@color/white</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@drawable/bj</item>
</style>
|