启动画面API有时不显示图标。

4
我有一个MainActivityLoginActivityMainActivity使用Theme.MySplash风格(具有蓝色背景和应用程序图标)。 在第一次启动时,启动屏幕正常显示(带有背景和应用程序图标)。但是,当我从LoginActivity重新启动MainActivity时,启动屏幕将没有应用程序图标。 我重新启动MainActivity而不是返回到MainActivity因为在我的实际应用程序中,我需要重新创建MainActivity。 这是演示代码: style.xml
<style name="Theme.MySplash" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">#00f</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
    <item name="postSplashScreenTheme">@style/Theme.AndroidSplashScreen12</item>
</style>

<style name="Theme.AndroidSplashScreen12" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <item name="android:windowBackground">#fff</item>
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

主活动

class MainActivity : AppCompatActivity() {

    var keepSplashScreen = true

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val splashScreen = installSplashScreen()
        setContentView(R.layout.activity_main)

        splashScreen.setKeepVisibleCondition { keepSplashScreen }
        Handler(Looper.getMainLooper()).postDelayed({
            keepSplashScreen = false
        }, 1500)

        findViewById<Button>(R.id.button_login).setOnClickListener {
            startActivity(Intent(this@MainActivity, LoginActivity::class.java))
        }
    }
}

登录活动

class LoginActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login2)

        findViewById<Button>(R.id.button_start_main).setOnClickListener {
            finishAffinity()
            startActivity(Intent(this@LoginActivity, MainActivity::class.java))
        }
    }
}
1个回答

3

如果您使用Splashscreen API设置图标,那么如果您从Android Studio启动应用程序,则不会显示图标。如果您从手机打开应用程序,则图标将开始显示。


谢谢。我也在启动应用程序时遇到了这个问题,但对我来说似乎没什么影响,因为它不会影响最终用户。我的问题是从另一个活动再次启动MainActivity。我记得我在beta01版本中遇到过这个问题,我不确定它是否在下一个版本中修复了。 - Linh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接