MTK启动短信优化闪屏(闪白屏或者黑屏)

原创 2017年09月13日 14:00:01

Activity启动的时候需要一段时间去初始化,这个时候就会有一定的延迟,为了提高用户体验,Android引入了StartingWindow来对这个过程进行过度,在真正的Activity进行初始化的时候会显示StartingWindow,该StartingWindow的主题样式和真正的Activity的主题是一样的。在真正的Activity初始化完成之后就会消除掉StartingWindow,显示真正的Activity。由于这个StartingWindow只是一个很简单的Window,它只是具有真正Activity的主题样式,但是内容是没有被指定的,当真正的Activity的主题设置了windowBackgrond后,StartingWindow就会显示这个windowBackground,如果你的windowBackground是白色的,那么闪白屏,windowBackground是黑色的就会闪黑屏。


MTK是使用这样的方式来避免闪屏的。

原来打开短信默认的打开界面是ConversationList,但是MTK默认打开的界面是BootActivity。

其配置的主题是(不会出现闪屏)

<style name="Theme.NoDisplay">

        <item name="android:windowBackground">@null</item>没有背景

        <item name="android:windowContentOverlay">@null</item>

        <item name="android:windowIsTranslucent">true</item>透明

        <item name="android:windowAnimationStyle">@null</item>

        <item name="android:windowDisablePreview">true</item>禁用窗口的预览动画

        <item name="android:windowNoDisplay">true</item>

    </style>


然后在BootActivity.java中

private void enterMms() {

        MmsLog.d(TAG, "bootActivity enter MMS");

        finish();


        int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK;

        if (!FolderModeUtils.startFolderViewList(

                mOpBootActivityExt.enterMms(), this, null, flags)) {

            Intent intent = new Intent(this, ConversationList.class);

            intent.setFlags(flags); // /M: changed for alps00437708

            startActivity(intent);

        }

    }

在这里finish自己,打开真正的短信列表界面ConversationList,就不会出现闪屏了。

注意类似BootActivity一定不能做复杂的逻辑操作,他就是一个临时展现的activity,UI也要简单化。

其实还可以有其他优化方案,例如加载的android:windowBackground设置为一张图片,这样就不会黑屏白屏闪屏了。然后可以在onCreate再设置回自己的主题。setTheme方法。

相关文章推荐

android之layout_weight属性

我们知道在xml布局的时候,LinearLayout下面的子控件可以使用layout_weight属性,那么我们根据源码,来分析下这个属性的一些知识点。 首先,在系统代码attrs.xml,我们可...

高通android 7.0短信发送流程

ComposeMessageActivity.java sendMessage mWorkingMessage.setWorkingMessageSub(mSelectedSubId);设置s...

Android启动优化,去除白屏或者黑屏

App启动的方式: 冷启动:指后台没有改应用的进程,重新创建进程,过程为,实例化Application,然后实例化入口Activity,最后显示Activity. ...
  • LXLYHM
  • LXLYHM
  • 2016年11月22日 23:00
  • 479

Android程序点击启动后有黑屏或者白屏一闪而过解决办法

Android程序点击启动后有黑屏或者白屏一闪而过解决办法 发现问题 开发Android程序的时候一般都会有WelcomeActivity,而且大多数的内容都是加载一张自己的logo或者显示出软件内...

Android启动优化,去除白屏或者黑屏

Android启动优化,去除白屏或者黑屏App启动的方式:冷启动:指后台没有改应用的进程,重新创建进程,过程为,实例化Application,然后实例化入口Activity,最后显示Activity....

Android App启动出现白屏或者黑屏的优化方案

最近在研究使用app的过程中发现有的app首次启动的时候会有短暂的白屏,而有的app则不会出现这样的情况,起初我以为是手机的问题,但是我换了几个手机进行测试仍然会出现这样的状况,当然出现白屏给给用户的...

Android 编程下通过 Theme 和 Style 避免 APP 启动闪黑屏或者白屏,快速启动

之前在做 APP 的时候不太关注这个问题,因为自己在使用其他 APP 的时候也会在应用启动的初始有一个黑屏闪过后才会出现应用的欢迎页。直到最近开发过程中发现自己在欢迎页启动的线程由于请求和处理的数据量...

Android应用启动前 白屏或者黑屏原因?

在使用某些APP时会发现 点击应用稍有延迟显示黑屏 或者白屏 然后加载数据进入到应用界面? 那么为什么会出现短暂的黑屏或者白屏呢?什么时候出现黑屏 什么时候出现白屏呢? 延迟原因:因为再启动应用时...

Android开发之解决APP启动白屏或者黑屏闪现的问题,androidapp

Android开发之解决APP启动白屏或者黑屏闪现的问题,androidapp 在做搜芽的过程中,发现那个外包人缘做的不行,因为启动的时候会停顿,然后白屏一会,联想到几个月前我在我的三僚企业...

Android APP启动时出现白屏或者黑屏怎么办?

1、为什么APP启动时会出现白屏或者黑屏?当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MTK启动短信优化闪屏(闪白屏或者黑屏)
举报原因:
原因补充:

(最多只允许输入30个字)