Splash Screen is not showing always (Android 12)

Viewed 68

I am implementing the SplashScreen library ('androidx.core:core-splashscreen:1.0.0') Sometimes splash screen is not showing and setOnExitAnimationListener is ignored. Then my app keeps in an empty activity (because I kill SplashActivity and start MainActivity after exit animation listener). It seems to happen when app is open and I reinstall it again.

I tried to solve it with setKeepOnScreenCondition, but app keeps empty for 1000 milliseconds.

class SplashActivity : AppCompatActivity() {

    private val startedMillis = System.currentTimeMillis()

    override fun onCreate(savedInstanceState: Bundle?) {
        // Handle the splash screen transition.
        val splashScreen = installSplashScreen()
        super.onCreate(savedInstanceState)
        splashScreen.setKeepOnScreenCondition{
            val shouldExit = (System.currentTimeMillis() - startedMillis) >= 1000
            startActivity(Intent(this, MainActivity::class.java))
            finish()
            shouldExit
        }
        splashScreen.setOnExitAnimationListener { splashScreenView ->
            val slideUp = ObjectAnimator.ofFloat(
                splashScreenView.iconView,
                View.ALPHA,
                1f,1f
            )
            slideUp.duration = 500L

            slideUp.doOnEnd {
                //splashScreenView.remove()
                startActivity(Intent(this, MainActivity::class.java))
                finish()
            }

            // Run animation.
            slideUp.start()
        }
    }
}

Can someone help me, please? Any idea?

0 Answers
Related