飞溅后黑屏

时间:2019-03-27 18:01:11

标签: android kotlin splash-screen

当我打开应用程序时,将显示启动画面,然后出现黑屏(仅持续1秒钟),然后转到活动。如何避免出现黑屏?

我将启动设置为主题。

class SplashActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        if (sharedPrefs.isUserLogged) {
            startActivity(intentFor<MainActivity>().clearTask().newTask())
        }else{
            startActivity(intentFor<LoginActivity>().clearTask().newTask())
        }
        finish()
    }
}

我在AndroidManifest.xml上设置了初始样式

<activity android:name=".view.splash.SplashActivity"
                  android:theme="@style/AppTheme.Launch">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
</activity>

按照我的风格,我为背景设置了一个可绘制对象。

<style name="AppTheme.Launch">
    <item name="android:windowBackground">@drawable/my_splash</item>
</style>

1 个答案:

答案 0 :(得分:0)

一段时间后我找到了解决方案:

class SplashActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    Timer().schedule(1000) {
       if (sharedPrefs.isUserLogged) {
           startActivity(intentFor<MainActivity>().clearTask().newTask())
       }else{
           startActivity(intentFor<LoginActivity>().clearTask().newTask())
       }
    }
  }
}

我将主题设置如下:

<style name="AppTheme.Launch">
    <item name="android:windowBackground">@drawable/my_splash</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>