您的位置:首页 > 移动开发 > Android开发

Android打开界面时判断是否登录,未登录跳转登录界面,登录完成后直接跳转要打开的界面

2017-08-04 16:26 411 查看
跳转时调用的方法。

实现思路是未登录的话创建一个跳转到登录界面的ComponentName,替换掉Intent中原来的ComponentName,把要跳转的目标className取出来传递到登录界面。注意,这里只能替换Intent内的ComponentName,而不能重新创建一个新的Intent,因为运来的Intent可能是有需要传递的数据的,重新创建的话原来Intent内的数据会丢失。

public void startActivityAfterLogin(Intent intent) {
//未登录(这里用自己的登录逻辑去判断是否未登录)
if (!UserManager.getInstance().isLogin()) {
ComponentName componentName = new ComponentName(getContext(), LoginActivity.class);
intent.putExtra("className", intent.getComponent().getClassName());
intent.setComponent(componentName);
super.startActivity(intent);
} else {
super.startActivity(intent);
}
}


登录界面的方法。

登录成功后调用此方法,用Class.forName将传过来的className转换成Class,跟上个跳转同理,不能创建新的Intent而是要用原来的Intent保证数据正确传递。

private void startActivity() {
if (getIntent().getExtras() != null && getIntent().getExtras().getString("className") != null) {
String cl
4000
assName = getIntent().getExtras().getString("className");
getIntent().removeExtra("className");
if (className != null && !className.equals(getContext().getClass().getName())) {
try {
ComponentName componentName = new ComponentName(getContext(), Class.forName(className));
startActivity(getIntent().setComponent(componentName));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
finish();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐