美文网首页架构android技术专栏安卓开发
Android 解决APP启动时闪黑屏的问题

Android 解决APP启动时闪黑屏的问题

作者: 进击的阿达 | 来源:发表于2017-09-14 10:21 被阅读71次

    细心的朋友一定注意到APP启动时会闪一下黑屏,如果应用的启动页是白色的话这种启动效果会显得特别突兀,让人不爽。
    自己也尝试了一些方法,比如给SplashActivity设置白色背景或者透明背景之类的,都没有效果。
    后来在网上搜了一下关于这方面的资料


    原因在于应用启动时,程序中带有 android.intent.action.MAIN 的Activity,也就是启动主页面。他的onCreate和onResume生命周期还没有执行完成,但是应用已经启动,所以体现出来的效果就是黑屏。解决的办法就是给Application设置一个theme。

        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="android:windowIsTranslucent">true</item>
        </style>
    
        <!-- 这样就可以将启动时的Activity做透明处理,但是可能会产生一点的延迟效果。 -->
    

    相关文章

      网友评论

      • 一切从简:应该是mainActivity里做了太多的耗时操作了吧?把耗时操作换到非UI线程就好了。。
        一切从简:@进击的阿达 我的建议是MainActivity尽量做简单的事情,只负责入口类的启动或者初始化线程的开始。如果启动的东西比较多,建议单独做一个启动页(有进度条的那种)。不过你说的给mainActivity设置一个theme也是一个必要的操作。app内的所有activity应该都要统一theme。我印象中给application设置一个theme就好了吧?!
        进击的阿达: @冰蓝Zy 准确的说是mainactivity的onresume之前是这个黑屏。
        进击的阿达: @冰蓝Zy 不是的,这个黑屏还没有执行到oncreate方法呢。setcontentview方法之前才有这个黑屏。

      本文标题:Android 解决APP启动时闪黑屏的问题

      本文链接:https://www.haomeiwen.com/subject/cuirsxtx.html