未登录跳转登录页 登录后跳转原来页

前言

在大多数APP中可能会碰到这样一个需求,用户点击下一步、下一步后有一个页面需要登录才能查看,在输入账号和密码,登录上去后需要再次跳转到原来的页面。在之前小冷想了很多方法也实现了但是比较繁琐,直到看到CSDN一篇简短的文章觉得非常好,小冷在此记录一下。需要粘贴部分代码的点我查看原文

登录跳转流程

从A界面跳转到B界面,判断是否需要登录,需要登录时,记录下B界面的全类名,通过intent传递给LoginActivity,不需要登录直接跳转到B界面。等登录成功后检查获取到的intent中的全类名,通过反射跳转到之前记录的B界面。


登录跳转流程

代码示例

A跳转B(在界面A中写)

Intent intent= new Intent(this,NextActivty.class);
intent.putString("key","value");
startActivityAfterLogin(this,intent);

public void startActivityAfterLogin(Context context,Intent intent) {
    //未登录(这里用自己的登录逻辑去判断是否未登录)
    if (! UserUtils.getLoginStatus()) {//修改为自己的判断登录状态方法
        ComponentName componentName = new ComponentName(context, LoginActivity.class);
        intent.putExtra("className", intent.getComponent().getClassName());
        intent.setComponent(componentName);
        super.startActivity(intent);
    } else {
        super.startActivity(intent);
    }
}

LoginActivity跳转B(在LoginActivity界面中写)

Intent intent= new Intent(this,NextActivty.class);
startActivityAfterLogin(intent);

   public void startActivity(Context context) {
        if (getIntent().getExtras() != null && getIntent().getExtras().getString("className") != null) {
            String className = getIntent().getExtras().getString("className");
            getIntent().removeExtra("className");
            if (className != null && !className.equals(context.getClass().getName())) {
                try {
                    ComponentName componentName = new ComponentName(context, Class.forName(className));
                    startActivity(getIntent().setComponent(componentName));
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
            }
        }
        finish();
    }

小结

把上面两个方法放在BaseActivity内,即可轻松实现需求。两个方法最主要用到ComponentName这个类和反射方式获取类名这两个关键点

友情链接

csdn登录和跳转判断

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,856评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,851评论 0 17
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,050评论 3 119
  • 一树一树的花开是一个美丽的景象,在我的眼里却只有一棵树,这棵树每到春天总有粉红色的花朵冒出枝梢。喜欢在黄昏...
    冰夫阅读 1,306评论 0 0
  • 刚开始接触李笑来的文章的时候,是始于当时想学时间管理这方面的相关知识,而笑来的把时间当朋友也是比较经典的文章,读完...
    Yuan_life_my阅读 1,293评论 0 0