首页 > 解决方案 > 为什么splashactivity在mainactivity启动时闪烁

问题描述

在此处输入图像描述

这是我现在的项目情况。

  1. MainActivity 是 LAUNCHER
  2. SplashActivity 调用 MainActivity onCreate()

仔细一想,好像没有问题。但应用程序启动后,屏幕在通话MainActivity前短暂可见。SplashActivity

令人惊讶的是,我没有在其他设备上看到它,只有 Galaxy S8。

当然,我知道这不是一个通用的结构。但我无法理解,因为我一直在正常工作。白色是冷启动风格和splashActivity。红色是 mainActivity

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // some getIntent code

    startActivityForResult(new Intent(this, SplashActivity.class), RESULTCODE_);

    setInitLayout();
}

显现

<activity android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme" >
    <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".SplashActivity"
    android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme" >
</activity>

minSdkVersion 21

targetSdkVersion 28

标签: android

解决方案


如果您将 style withandroid:windowBackground用于启动活动,请不要调用setContentView(). 就这样!


推荐阅读