Aks*_*ain 5 android splash-screen kotlin android-studio
我浏览了有关 Android 12 启动屏幕以及迁移现有启动屏幕的文档,但它没有明确提及如何根据条件选择启动屏幕。
具体来说,我之前添加了用户是否已登录的检查:
class SplashScreenActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash_screen)
if(viewModel.isUserSignedIn()) {
navigateToMain()
} else {
navigateToAuth()
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中SplashScreenActivity被标记为默认启动活动。当我保持这样时,Android studio 会发出警告 - The application should not provide its own launch screen。
我按照指南修改了它并setContentView从活动中删除并调用了installSplashScreen。
class SplashScreenActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
installSplashScreen()
if(viewModel.isUserSignedIn()) {
navigateToMain()
} else {
navigateToAuth()
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器上运行时,它似乎按预期工作,但 Android Studio 继续发出相同的警告。
这是迁移到 Android 12 初始屏幕的正确方法吗?如果是,为什么 Android Studio 上仍然显示错误?另外,我们是否需要将该活动保留为默认启动器,或者是否需要进行更改?
你还是需要打电话setContentView到这里。所以代码看起来像:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
installSplashScreen()
setContentView(R.layout.activity_splash_screen)
if(viewModel.isUserSignedIn()) {
navigateToMain()
} else {
navigateToAuth()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |