android - SplashScreen API 有时不显示图标

标签 android android-splashscreen

我有 MainActivityLoginActivityMainActivity 使用 Theme.MySplash(有蓝色和应用程序图标)。
首次启动时,SplashScreen 显示良好(带有背景和应用程序图标),但是,当我从 LoginActivity 重新启动 MainActivity 时,SplashScreen 显示没有 应用程序图标。 我重新启动 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>

主 Activity

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))
        }
    }
}

登录 Activity

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))
        }
    }
}

最佳答案

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

关于android - SplashScreen API 有时不显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69263654/

相关文章:

触摸水平 RecyclerView 时,Android 设计库 CollapsingToolbarLayout 停止交互

android - Flutter Android 启动画面总是黑色

android - 可以在 Android 12 Splash Screen API 中设置图标的宽度

android - 如何向服务请求权限

android - 任务 ':app:dexDebug' 执行失败。不确定可能是 httpclient 和 httpmime 之间的依赖性问题

android - 错误广播 Intent 回调 : result=CANCELLED forIntent { act=com. google.android.c2dm.intent.RECEIVE pkg=com.flagg327.guicomaipu(有附加功能)}

java - 模拟器崩溃 "Invalid int"

android - 从 Android 12 中删除默认启动画面(示例)

按下电源按钮后,Android 12 SplashScreen API 显示黑色