我看到过关于这一问题的不同帖子,谷歌上也有一个公开的问题,他们说这不是一个漏洞,而是故意的行为.https://issuetracker.google.com/issues/197906327个 尽管很多人说它并没有像预期的那样起作用.

如果从设置-应用程序-我的应用程序中打开该应用程序,则

splashScreen.setOnExitAnimationListener

被调用了很多次,闪屏显示时没有图标,然后应用程序停留在空白屏幕上.同样的情况也发生在API 31上,但这里

splashScreen.setOnExitAnimationListener

根本没有被调用,仍然停留在空白屏幕上.

有什么办法可以解决这个问题吗?或者破解以使其正常工作?

在所有其他API上,它都可以工作,但31和32不起作用.

推荐答案

Jetpack (androidx) > Core issue 197906327:"在调试模式下使用CustomSplashScreensplashScreen.setOnExitAnimationListener()未调用"似乎没有任何修复,只有(不完美的)解决方法.

关于最后一个选项:

问题是在调试模式下使用CustomSplashScreen类时不会调用setOnExitAnimationListener()方法.这是因为CustomSplashScreen类实际上并不在调试模式下显示.相反,系统会显示默认的闪屏.

但是,如果使用setOnExitAnimationListener()方法,当default闪屏关闭时,侦听器仍将被调用.这是因为监听程序被附加到SplashScreen interface,这是由CustomSplashScreen类和默认闪屏实现的.

因此,即使在调试模式下使用CustomSplashScreen类时不调用setOnExitAnimationListener()方法,当关闭默认闪屏时仍会调用该方法.这意味着您可以使用侦听器启动应用程序的主要活动,即使在调试模式下也是如此.

例如,这将使用setOnExitAnimationListener()方法在调试模式下启动应用程序的主要活动:

val splashScreen = installSplashScreen()

splashScreen.setOnExitAnimationListener {
  // Start your app's main activity here.
  startActivity(Intent(this, MainActivity::class.java))
}

Android相关问答推荐

将动作传递给嵌套的可组合物

有没有办法知道每台安卓设备上的通知限制?

如何在Jetpack Compose中使用Box Composable来实现这种布局?

在不增加父行宽度的情况下添加延迟行或可滚动行

Android事件:APP_SCOUT_HANG警告SQLite

如何删除Jetpack Compose中的Textfield底线

每次重启Android时预填入Room数据库

Android Jetpack Compose调用view-model函数仅一次

我怎样才能画一条线在喷气背包组成和有一个自定义的角落?

我们可以使用KSP读取类中变量的值吗?

有没有办法让协程通道在接收时遵循特定的顺序而不是先进先出

Android 访问任意公共目录

为什么我收到这个错误我需要安装 android studio

设置背景图片组成Column

每次在 Jetpack Compose 中调用导航

在 Jetpack Compose 中包装内容

获取模板向导配方类 Intellij 中的应用程序包名称

Android Compose 创建抖动动画

在jetpack compose中将图像添加到脚手架顶部栏

react-native android项目未找到错误