繁体   English   中英

如何在 Android 的启动画面期间创建身份验证用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM