登录拦截的优雅实现 -- 不登录返回指定页面

前言

首先说明这种情况是属于少见的那一种,但是架不住产品会有这种需求

好的狗子,满足他

修改 BaseActivity 代码


	/**
     * 登录页面不登录,直接点击返回,需要跳转的指定页面
     */
    var onBackTargetActivity = ""
    
    override fun startActivity(intent: Intent?) {
        super.startActivity(
            if (isGreenChannel) {
                intent
            } else {
                if (isLogin()) {
                    intent
                } else {
                    intent?.putExtra(KeyUtils.TARGET_ACTIVITY, intent.component?.className)
                    // 较之前版本添加返回的目标页面
                    intent?.putExtra(KeyUtils.ON_BACK_TARGET_ACTIVITY, onBackTargetActivity)
                    ?.setClass(this, LoginActivity::class.java)
                }
            }
        )
    }

我们在 Base 的拦截器中,新增一个变量,在跳转之前赋值,这样就会保存到 Intent 当中,然后去登录页去取


    private val onBackPressTargetActivity by lazy {
        Class.forName(intent.extras?.getString(KeyUtils.ON_BACK_TARGET_ACTIVITY)!!)
    }
    
    override fun onBackPressed() {
        if (intent.getStringExtra(KeyUtils.ON_BACK_TARGET_ACTIVITY).isNotEmpty()) {
            startActivity(Intent(this, onBackPressTargetActivity))
            finish()
        } else {
            super.onBackPressed()
        }
    }

如果不登录直接点击返回,那么我们只需要判断有没有指定要返回的页面就可以了

调用的时候注意给 onBackTargetActivity 赋值必须是 XXXActivity::class.java.toString()

系列文章

  1. 登录拦截的优雅实现
  2. 绿色通道问题
  3. 不登录直接返回跳转目标页面问题
  4. 跳转传值回传问题
  5. 以及一些暂未发现,后续发现或者读者提出的新问题补充进此列表

微信扫描二维码,关注我的公众号
关注这个公众号,我们聊聊别的,一起搞钱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值