Android中关于登陆拦截逻辑流程(Intent传递使用步骤)
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携带)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
webview 常用方法
webview 常用方法 packagecom.orgcent.webview; importandroid.app.Activity; importandroid.os.Bundle; importandroid.webkit.JsPromptResult; importandroid.webkit.JsResult; importandroid.webkit.WebChromeClient; importandroid.webkit.WebSettings; importandroid.webkit.WebView; importandroid.webkit.WebViewClient; importandroid.webkit.WebSettings.LayoutAlgorithm; publicclassAndroidWebViewActivityextendsActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setConte...
- 下一篇
深入理解Binder
深入理解Binder 一句话概括进程通信:进程间的数据传递。 Binder是Anroid系统里最重要的进程通信方式,很多文章会直接用代码、原理类的文字进行描述,对于接触Android与Linux不是特别深的人来说,特别晦涩难懂,经常是看了这忘了那里,其实探索Binder通信的一条核心就是:Client如何找Server,将请求发送给Server,Server再将结果返回给Client。 Binder基于OpenBinder,被引入后添加了很多Android特性,比如,在驱动层添加了ServiceManager逻辑,搭建起ServiceManger-Clien-Server框架模型。Android基于Linux内核,其进程管理模型完全沿用了Linux的进程/线程模型,进程划分为用户空间与内核空间,在用户空间,进程间是无法通信的,只有通过内核空间才能传递数据。 Binder自身的意义倾向于通信,只是进程间通信的一种方式,但是在Android系统中,Binder被提到了核心高度,Android基本可以看做基于Binder模型实现的是一种Android RPC模型(远程过程调用协议 Remot...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长