美文网首页Android开发学习Android开发Android开发经验谈
Android 如何简单实现一个跳转页面前判断登录的功能?

Android 如何简单实现一个跳转页面前判断登录的功能?

作者: 不会飞的小猪 | 来源:发表于2021-09-27 23:06 被阅读0次

    (它要求做到点击某个按钮触发跳转到某个activity前进行登录判断,等待登录成功后自动跳转到目标activity)

    这里以BaseApplication来做数据中转,代码块对象作为跳转执行代码的数据存储:

    class BaseApplication : Application() {
        companion object {
            @JvmStatic
            var isLogin: Boolean = false
            @JvmStatic
            var loginSuccessCall: () -> Unit = {}
        }
    }
    

    这里有三个Activity:MainActivity、LoginActivity、StackShowActivity(进入前需要登录),现在需要从MainActivity跳转到StackShowActivity。(所有的Activity继承自BaseActivity)

    open class BaseActivity : AppCompatActivity() {
        private val TAG = "BaseActivity"
        /**
         * 核心逻辑
         */
        fun goActivityWhenLogin(detail: () -> Unit) {
            when (isLogin()) {
                true -> detail.invoke()
                false -> goLoginAct(detail)
            }
        }
    
        private fun goLoginAct(detail: () -> Unit) {
            BaseApplication.loginSuccessCall = detail
            startActivity(Intent(this, LoginActivity::class.java))
        }
    
        /**
         * 登录成功后调用
         */
        fun loginSuccess() {
            BaseApplication.loginSuccessCall.invoke()
        }
    
        private fun isLogin(): Boolean {
            return BaseApplication.isLogin
        }
    }
    

    MainActivity中点击跳转:

    fun toStackShowActivity(view: View) {
        goActivityWhenLogin {
            val intent = Intent(this, StackShowActivity::class.java)
            intent.putExtra("url","http://**")
            startActivity(intent)
        }
    }
    

    LoginActivity中登录成功后调用:

    fun setLoginSuccess(view: View) {
        BaseApplication.isLogin = true
        finish()
        loginSuccess()
    }
    

    以上即可实现功能要求。
    整体思路就两点:

    1. 代码块对象做数据存储
    2. BaseApplication做数据中转

    此处代码只是为了示例,实际程序设计中还需要考虑loginSuccessCall是否已经消费等问题(并不是所有人都会首先使用类似于goActivityWhenLogin这样自定义的跳转方式)。

    看完文章,如果有帮助,不忘点个赞or喜欢!

    相关文章

      网友评论

        本文标题:Android 如何简单实现一个跳转页面前判断登录的功能?

        本文链接:https://www.haomeiwen.com/subject/acxlnltx.html