[英]How create Authenticate user during Splash Screen in Android
class SplashScreenActivity:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.splash_activity)
Handler().postDelayed({
FirebaseAuth.AuthStateListener { auth ->
val user = auth.currentUser
if(user != null) {
startProfileActivity()
print("Hello")
} else {
startLoginActivity()
print("Hell")
}
}
finish()
},1500)
}
private fun startLoginActivity() {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
}
private fun startProfileActivity() {
val intent = Intent(this, ProfileActivity::class.java)
startActivity(intent)
}
我的问题
我尝试使用 firebase 创建一个可以验证用户是否已经登录的启动画面。 但是,我当前的代码会产生等待 1500 微秒的初始屏幕,并且应用程序已关闭。 谁能指导我完成这个?
你应该像这样使用完成:
private fun startLoginActivity() {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
finish()
}
private fun startProfileActivity() {
val intent = Intent(this, ProfileActivity::class.java)
startActivity(intent)
finish()
}
因为在 AuthStateListener 完成之前,finish() 行似乎正在运行。 因此,应用程序关闭。
Handler().postDelayed({
val user = FirebaseAuth.getInstance().currentUser
if(user != null) {
startProfileActivity()
print("Hello")
} else {
startLoginActivity()
print("Hell")
}
},1500)
FirebaseAuth.AuthStateListener在身份验证 state 发生更改时,在 UI 线程中调用此方法:
在监听器注册之后
当用户登录时
当前用户退出时
当前用户更改时
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.