比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

Android中关于登陆拦截逻辑流程(Intent传递使用步骤)

Android中关于登陆拦截逻辑流程(Intent传递使用步骤)http://www.bieryun.com/2577.html

问题:

我们在开发中经常遇到这样的需求,当前用户在A界面点击按钮想跳到C界面,但是该用户当前并未登陆账户,此时我们就想让用户在跳到C界面之前跳到B界面进行登陆操作,当登陆成功时候直接跳到C界面,整个思路流程如下图所示;

解决方式一:

使用Intent 传递:

A界面(MainActivity):

    //点击按钮相应的代码

     //使用 startActivityForResult 直接跳到C界面
     Intent intent = new Intent(MainActivity.this, CActivity.class);
     startActivityForResult(intent, 100);
      @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        //开启C的界面  RESULT_OK即代表已做登陆处理
        if (requestCode == 100 && resultCode == Activity.RESULT_OK) {
            Intent intent = new Intent(MainActivity.this, CActivity.class);
            intent.putExtra("isLoading", false);
            startActivity(intent);
        }

    }

C界面(CActivity)操作:

     //首先要判断是否处于登陆状态 如果未登陆则使用以下代码
        Intent intent = getIntent();
        //请求转发
        intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
        intent.setClass(CActivity.this, BActivity.class);
        startActivity(intent);
        //退出当前界面
        finish();

B界面(BActivity)操作:

       //进行登陆操作 成功后
         setResult(Activity.RESULT_OK);
         finish();

解决方式二:

我们当然也可以在A界面直接判断当前是否登陆,如果已经登陆那么直接跳转到C,如果未登陆那么跳转到B界面,再登陆,在登陆成功的条件下跳转到C界面(条件判断可以通过Intent携带)。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS