Android打开界面时判断是否登录,未登录跳转登录界面,登录完成后直接跳转要打开的界面
2017-08-04 16:26
411 查看
跳转时调用的方法。
实现思路是未登录的话创建一个跳转到登录界面的ComponentName,替换掉Intent中原来的ComponentName,把要跳转的目标className取出来传递到登录界面。注意,这里只能替换Intent内的ComponentName,而不能重新创建一个新的Intent,因为运来的Intent可能是有需要传递的数据的,重新创建的话原来Intent内的数据会丢失。
登录界面的方法。
登录成功后调用此方法,用Class.forName将传过来的className转换成Class,跟上个跳转同理,不能创建新的Intent而是要用原来的Intent保证数据正确传递。
实现思路是未登录的话创建一个跳转到登录界面的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(); }
相关文章推荐
- Android判断当前应用通知是否 4000 打开,跳转到打开通知界面
- Android判断网络是否打开,并打开设置网络界面
- Android判断网络是否打开,并打开设置网络界面
- Android判断网络是否打开,并打开设置网络界面
- android4.0 中设置网络出错,Android判断网络是否打开,并打开设置网络界面
- Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
- 判断是否连接上网络和跳转到打开网络的界面
- android 在webapp中判断native app是否安装并直接打开
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- IOS TabBarController中判断是否应该跳转到登录界面
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- js判断移动端是否安装某软软件,安装直接打开相应的链接,否则跳转到下载商店方法
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- Android 判断应用程序获取通知栏权限是否开启,以及如何跳转到应用程序设置界面
- Android 判断当前网络连接是否可用、打开设置网络界面
- Android判断网络是否打开,并打开设置网络界面
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- Android判断网络是否打开,并打开设置网络界面
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- apk 内部下载 完成后直接跳转系统安装界面 android