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

问题:
我们在开发中经常遇到这样的需求,当前用户在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携带)。
本文介绍在Android应用中实现用户登录前拦截并引导至登录界面的方法。通过两种方式实现:一是利用Intent传递完成界面间的跳转及结果反馈;二是直接在源界面判断登录状态并作出相应跳转。
900

被折叠的 条评论
为什么被折叠?



