Bugs-启动APP时短暂白/黑屏现象的解决
2017-08-09 14:56
316 查看
原因分析
当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个 Activity所属的应用创建一个进程,但进程的创建与初始化都需要时间,在这个动作完成之前系统要做什么呢?如果没有任何反应的话,如果程序初始化的时间很长,用户可能还以为没有点到相应的位置。但此时所启动的程序还没初始化完,既无法显示程序,又不能停在原处不做任何动作,怎么办?这就有了Starting Window的概念,也可以称之为Preview Window。Starting Window就是一个用于在应用程序进程创建并初始化成功前显示的临时窗口,拥有的Window Type是TYPE_APPLICATION_STARTING。在程序初始化完成前显示这个窗口,以告知用户系统已经知道了他要打开这个应用并做出了响应,当程序初始化完成后显示用户UI并移除这个窗口。
显示白屏或者黑屏,是由你的启动Activity或者Application来决定的。如果你使用的是Light主题,那么就可能出现白屏;如果你使用的是Black主题,那么就可能出现黑屏。当你设置Light或者Black主题时,Starting Window显示的就是你启动Activity的android:windowBackground属性,所以才会出现白屏或者黑屏的情况。
如何解决
首先给一个最简单的方法,在styles.xml文件中自定义启动页的theme:<!--解决启动闪屏的问题--> <style name="LauncherTheme" parent="AppTheme"> <item name="android:windowNoTitle">true</item> //设置窗口全屏 <item name="android:windowIsTranslucent">true</item> //设置窗口半透明 </style>
将启动页的theme设置为自定义的theme
<activity android:name=".main.ui.LauncherActivity" android:theme="@style/LauncherTheme"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
原理:将窗口背景设置成半透明后,系统将不会给窗口设置预览界面;但是,它和MainActivity的显示是同步,如果在MainActivity启动的时候,有过多复杂的操作,就会出现在手机中点击了应用程序的图标之后,但过两秒才会打开应用程序不好的卡顿体验效果。
或者,参照同样的道理,只要给窗口设置了背景色,系统就不会给窗口设置预览界面;即:
<!--解决启动闪屏的问题--> <style name="LauncherTheme" parent="AppTheme"> <item name="android:windowBackground">@color/colorAccent</item>//设置背景色 <item name="android:windowNoTitle">true</item> //设置窗口全屏 </style>
或者
<!--解决启动闪屏的问题--> <style name="LauncherTheme" parent="AppTheme"> <item name="android:windowBackground">@drawable/img_welcome</item> //设置背景图片 <item name="android:windowFullscreen">true</item> //设置全屏 <item name="android:windowNoTitle">true</item> //设置窗口全屏 </style>
相关文章推荐
- Android 解决APP启动时出现短暂的白屏或者黑屏
- 解决android启动app时出现短暂的黑屏或一个带title的界面
- 解决APP启动时短暂黑屏的问题
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- 解决app启动时白屏或者黑屏问题
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- 解决android在启动闪屏页面前会出现短暂的白屏或黑屏状态
- Android 解决启动app白屏或黑屏的问题
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- 快速解决ionic安卓主题启动时短暂的黑屏或白屏问题
- 解决APP启动白屏或者黑屏闪现的问题
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- android app启动是白屏或黑屏问题的解决
- Android Study 之冷启动优化(解决启动短暂白屏or黑屏)
- 启动时短暂的黑屏问题解决方案
- android应用程序启动时短暂白屏或者黑屏的解决处理方案
- Android解决APP启动白屏或者黑屏闪现的问题
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- 解决App启动之后短暂的空白画面